@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2)format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff)format("woff")}:root{--bg:#12151c;--surface:#1c212b;--surface-2:#242c3a;--border:#333b4c;--text:#f5f6f8;--muted:#8b93a5;--primary:#4f8a8b;--primary-hover:#3f7375;--positive:#4ade80;--negative:#f87171;--radius:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background-color:var(--bg);font-family:Nunito,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{background:var(--bg);-webkit-font-smoothing:antialiased}.auth-screen,.center-screen{min-height:100vh;padding:1.5rem;padding-top:max(1.5rem, env(safe-area-inset-top));place-items:center;display:grid}.auth-card{flex-direction:column;gap:.85rem;width:100%;max-width:380px;display:flex}.ksp-logo-compact{align-items:baseline;gap:.4rem;min-width:0;display:inline-flex;overflow:hidden}.ksp-logo-compact .ksp-logo-mark{letter-spacing:.02em;color:var(--primary);flex:none;font-size:1.15rem;font-weight:800}.ksp-logo-compact .ksp-logo-tagline{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:.95rem;font-weight:700;overflow:hidden}.ksp-logo-full{width:100%;max-width:260px;height:auto;margin:0 auto .25rem;display:block}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-topbar{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);background:#0f172ad9;position:sticky;top:0}.app-header{padding:1rem 1.25rem .6rem;padding-top:max(1rem, env(safe-area-inset-top));justify-content:space-between;align-items:center;gap:1rem;display:flex}.header-left{align-items:center;gap:.6rem;min-width:0;display:flex}.drawer-toggle{width:2.25rem;height:2.25rem;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0;font-size:1.3rem;line-height:1;display:flex}.drawer-toggle:hover{background:var(--surface-2)}.header-right{align-items:center;gap:.75rem;display:flex}.email{text-overflow:ellipsis;white-space:nowrap;max-width:40vw;font-size:.85rem;overflow:hidden}.app-nav{scrollbar-width:none;gap:.4rem;padding:0 1.25rem .6rem;display:flex;overflow-x:auto}.app-nav::-webkit-scrollbar{display:none}.nav-link{color:var(--muted);white-space:nowrap;border-radius:999px;flex:none;padding:.45rem .85rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.nav-link:hover{color:var(--text);background:var(--surface-2)}.nav-link.active{color:#fff;background:var(--primary)}.drawer-backdrop{z-index:100;background:#00000080;display:flex;position:fixed;inset:0}.drawer-panel{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;width:min(80vw,300px);height:100%;animation:.18s ease-out drawer-slide-in;display:flex}@keyframes drawer-slide-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-header{padding:1rem 1.1rem;padding-top:max(1rem, env(safe-area-inset-top));border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;display:flex}.drawer-close{width:2rem;height:2rem;color:var(--muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;font-size:1.1rem;display:flex}.drawer-links{flex-direction:column;flex:1;gap:.2rem;padding:.75rem;display:flex;overflow-y:auto}.drawer-link{color:var(--muted);border-radius:10px;padding:.75rem .85rem;font-size:.95rem;font-weight:600;text-decoration:none}.drawer-link:hover{color:var(--text);background:var(--surface-2)}.drawer-link.active{color:#fff;background:var(--primary)}.drawer-footer{padding:1rem 1.1rem;padding-bottom:max(1rem, env(safe-area-inset-bottom));border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;display:flex}.drawer-footer .email{flex:1;min-width:0;max-width:none}@media (width<=639px){.app-nav,.header-right{display:none}}@media (width>=640px){.drawer-toggle{display:none}}.confirm-backdrop{z-index:200;background:#00000080;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.confirm-dialog{flex-direction:column;gap:.75rem;width:100%;max-width:360px;display:flex}.confirm-dialog h2,.confirm-dialog p{margin:0}.confirm-actions{justify-content:flex-end}.app-main{width:100%;max-width:720px;padding:1.25rem;padding-bottom:max(1.25rem, env(safe-area-inset-bottom));flex:1;margin:0 auto}.stack{flex-direction:column;gap:1.25rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.card h2{margin:0 0 .85rem;font-size:1.05rem}.muted{color:var(--muted)}.hint{margin:.6rem 0 0;font-size:.8rem}.stat-tiles{grid-template-columns:repeat(3,1fr);gap:.6rem;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.25rem;padding:.9rem;display:flex}.stat-tile .stat-value{margin:0;font-size:1.15rem;font-weight:700}.stat-tile .stat-label{align-items:center;gap:.4rem;font-size:.8rem;display:flex}.stat-dot{border-radius:999px;flex:none;width:.55rem;height:.55rem}.pill-row{scrollbar-width:none;gap:.4rem;padding-bottom:.15rem;display:flex;overflow-x:auto}.pill-row::-webkit-scrollbar{display:none}.pill{color:var(--muted);background:var(--surface-2);white-space:nowrap;cursor:pointer;border:none;border-radius:999px;flex:none;padding:.45rem .9rem;font-size:.85rem;font-weight:600;transition:background .15s,color .15s}.pill:hover{color:var(--text)}.pill.active{color:#fff;background:var(--primary)}.bar-track{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}.bar-fill{border-radius:999px;height:100%}.field{flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.checkbox-field{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.checkbox-field input[type=checkbox]{width:auto}.row{flex-wrap:wrap;gap:.6rem;display:flex}.row input[type=text]{flex:100%}.row input[type=number]{flex:120px}.row select{flex:160px}input,select,textarea{width:100%;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;outline:none;padding:.7rem .85rem;font-family:inherit;font-size:1rem}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f8a8b40}textarea{resize:vertical}input[type=date]::-webkit-calendar-picker-indicator{filter:invert()brightness(1.5)}input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert()brightness(1.5)}.btn{cursor:pointer;background:var(--surface-2);color:var(--text);border:1px solid #0000;border-radius:10px;padding:.7rem 1.1rem;font-size:1rem;font-weight:600;transition:background .15s,opacity .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-hover)}.btn.small{padding:.45rem .8rem;font-size:.85rem}.btn.link{color:var(--primary);background:0 0;border:none;padding:.3rem}.btn.danger{color:var(--negative);background:#f871711f;border:1px solid #f871714d}.btn.danger:hover:not(:disabled){background:#f8717138}.add-toggle{color:var(--muted);border:1px dashed var(--border);background:0 0;align-self:flex-start}.add-toggle:hover{color:var(--text);border-color:var(--muted)}.edit-row{flex-direction:column;align-items:stretch}.edit-form{width:100%}.edit-actions{justify-content:flex-end;align-items:center;gap:.5rem;margin-left:auto}.alert{border-radius:10px;margin:0;padding:.65rem .8rem;font-size:.9rem}.alert.error{color:var(--negative);background:#f871711f;border:1px solid #f871714d}.alert.success{color:var(--positive);background:#22c55e1f;border:1px solid #22c55e4d}.badge{color:var(--muted);background:var(--surface-2);vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.1rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.badge.success{color:var(--positive);background:#22c55e1f}.item-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.item-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:.8rem 0;display:flex}.item-row:last-child{border-bottom:none}.item-main{flex-direction:column;flex:180px;gap:.15rem;min-width:0;display:flex}.item-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.item-meta{font-size:.8rem}.item-value{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}:root{--bg:#12141a;--surface:#1c1f26;--surface-2:#23262e;--border:#2e323b;--text:#f2f0eb;--muted:#93897f;--primary:#e8501e;--primary-hover:#c43d14;--positive:#4a9b8e;--negative:#dc3b3b;--warning:#eab308}.todo-brand{align-items:center;gap:.5rem;margin:0;display:inline-flex}.todo-brand-mark{letter-spacing:-.025em;color:var(--primary);font-size:1.125rem;font-weight:800}.todo-brand-divider{background:var(--border);width:1px;height:1rem}.todo-brand-tagline{text-transform:uppercase;letter-spacing:.1em;color:var(--primary);font-size:.75rem;font-weight:700}.app-topbar{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;position:static!important}@media (width>=640px){.drawer-toggle{display:flex}}@media (width<=639px){.header-right{display:flex}}.app-shell{overscroll-behavior:none;height:100dvh;overflow:hidden}.app-main{min-height:0;overflow-y:auto}.app-main>*{flex-shrink:0}.bottom-nav{border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);background:#0f172aeb;flex:none;display:flex}.bottom-nav-item{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:.2rem;padding:.5rem 0 .4rem;font-family:inherit;font-size:.7rem;font-weight:600;display:flex}.bottom-nav-item.active{color:var(--primary)}.bottom-nav-icon-wrap{display:inline-flex;position:relative}.bottom-nav-badge{background:var(--negative);color:#fff;text-align:center;border-radius:999px;min-width:1rem;height:1rem;padding:0 .25rem;font-size:.6rem;font-weight:700;line-height:1rem;position:absolute;top:-.35rem;right:-.5rem}.btn-icon{justify-content:center;align-items:center;gap:.4rem;display:inline-flex}.empty-state{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;padding:2rem}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.4rem;transition:background .15s,color .15s,opacity .15s;display:inline-flex}.icon-btn:hover{color:var(--text);background:var(--surface-2)}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.icon-btn:disabled:hover{background:0 0}.drawer-link{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;font-family:inherit;display:block}.icon-btn.danger:hover{color:var(--negative);background:color-mix(in srgb, var(--negative) 12%, transparent)}.todo-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:.75rem;padding:.75rem;transition:opacity .3s,transform .3s;display:flex}.todo-row.completing{opacity:0;transform:scale(.95)}.todo-check{border:2px solid var(--border);color:#fff;cursor:pointer;background:0 0;border-radius:999px;flex:none;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;margin-top:.1rem;transition:background .15s,border-color .15s;display:flex}.todo-check:hover{border-color:var(--primary)}.todo-check.completed{background:var(--primary);border-color:var(--primary)}.todo-check:disabled{cursor:not-allowed;opacity:.4}.todo-check:disabled:hover{border-color:var(--border)}.todo-main{flex:1;min-width:0}.todo-title{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:500;overflow:hidden}.todo-title.completed{color:var(--muted);text-decoration:line-through}.todo-description{color:var(--muted);margin:.15rem 0 0;font-size:.85rem}.todo-meta{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.5rem;display:flex}.todo-meta .badge{margin-left:0}.todo-actions{flex:none;gap:.25rem;display:flex}.item-list:has(.todo-line){gap:0!important}.todo-line{border:none;border-bottom:1px solid var(--border);cursor:pointer;background:0 0;border-radius:0;flex-wrap:nowrap;align-items:center;padding:.65rem .1rem;overflow:hidden}.todo-line:last-child{border-bottom:none}.todo-bleed{margin:0 -1.25rem}.todo-bleed .todo-line{padding-left:1.25rem;padding-right:1.25rem}.priority-dot{border-radius:999px;flex:none;width:.55rem;height:.55rem}.priority-dot-high{background:var(--negative)}.priority-dot-medium{background:var(--warning)}.priority-dot-low{background:var(--positive)}.todo-line .todo-main{flex-direction:column;gap:0;min-width:0;display:flex}.todo-line .todo-description{display:none}.todo-line .todo-primary-line{align-items:center;gap:.5rem;min-width:0;display:flex}.todo-line .todo-title{flex:auto;min-width:3rem;margin:0}.todo-line .todo-meta{scrollbar-width:none;flex-wrap:nowrap;flex:0 auto;max-width:55%;margin-top:0;overflow-x:auto}.todo-line .todo-meta::-webkit-scrollbar{display:none}.todo-line .todo-meta .badge,.todo-line .todo-tags .badge{white-space:nowrap;flex:none}.todo-line .todo-tags{scrollbar-width:none;flex-wrap:nowrap;align-items:center;gap:.35rem;display:flex;overflow-x:auto}.todo-line .todo-tags::-webkit-scrollbar{display:none}.person-switcher-name{appearance:none;letter-spacing:-.02em;width:auto;max-width:100%;color:var(--text);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:0;margin:0;padding:0;font-family:inherit;font-size:1.75rem;font-weight:800;display:inline-block;overflow:hidden}.person-switcher-name:focus{box-shadow:none;outline:none}.person-switcher-name:disabled{cursor:default;opacity:1}.carousel{flex-direction:column;gap:.75rem;display:flex}.carousel-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.carousel-track{scroll-snap-type:x mandatory;scrollbar-width:none;display:flex;overflow-x:auto}.carousel-track::-webkit-scrollbar{display:none}.carousel-slide{scroll-snap-align:start;flex-shrink:0;width:100%}.carousel-dots{justify-content:center;gap:.4rem;display:flex}.carousel-dot{background:var(--border);cursor:pointer;border:none;border-radius:999px;width:.4rem;height:.4rem;padding:0;transition:background .15s}.carousel-dot.active{background:var(--primary)}.flashcard{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:18rem;display:flex}.flashcard-icon{color:var(--primary)}.flashcard-icon.warning{color:var(--warning)}.flashcard-kicker{text-transform:uppercase;letter-spacing:.05em;color:var(--primary);margin:0;font-size:.75rem;font-weight:700}.flashcard-list{text-align:left;flex-direction:column;gap:.25rem;width:100%;max-width:20rem;max-height:8rem;margin:0 auto;font-size:.9rem;display:flex;overflow-y:auto}.flashcard-list-row{background:var(--surface-2);text-overflow:ellipsis;white-space:nowrap;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .5rem;display:flex;overflow:hidden}.flashcard-chip{color:var(--text);background:var(--surface-2);border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:600;display:inline-block}.modal-backdrop{z-index:200;padding:1rem;padding-top:max(4rem, env(safe-area-inset-top));background:#000000d1;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-panel{width:100%;max-width:32rem}@media (width>=640px){.modal-backdrop{align-items:center;padding-top:1rem}}.select-wrap{position:relative}.select-wrap select{appearance:none;padding-right:2rem}.select-chevron{color:var(--muted);pointer-events:none;position:absolute;top:50%;right:.65rem;transform:translateY(-50%)}.form-grid{grid-template-columns:1fr;gap:.75rem;display:grid}@media (width>=640px){.form-grid{grid-template-columns:1fr 1fr}}.form-grid .span-2{grid-column:1/-1}.field-row-header{justify-content:space-between;align-items:center;display:flex}.field-inline-checkbox{text-transform:none;color:var(--muted);align-items:center;gap:.35rem;font-size:.8rem;font-weight:400;display:flex}.form-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:.5rem;padding-top:.75rem;display:flex}.reminder-row{background:var(--surface-2);border-radius:10px;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.reminder-row .select-wrap{flex:auto}.reminder-row .field-inline-checkbox{white-space:nowrap;flex:none}.badge.priority-high,.badge.due-overdue{color:var(--negative);background:color-mix(in srgb, var(--negative) 12%, transparent)}.badge.priority-medium,.badge.due-soon{color:var(--warning);background:color-mix(in srgb, var(--warning) 12%, transparent)}@keyframes check-pop{0%{transform:scale(0)}60%{transform:scale(1.3)}to{transform:scale(1)}}.animate-check-pop{animation:.3s ease-out check-pop}:root{--surface-3:color-mix(in srgb, var(--surface-2) 85%, white)}h1,h2,h3{margin:0;font-weight:800}::selection{background:color-mix(in srgb, var(--primary) 35%, transparent)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn:hover:not(:disabled){background:var(--surface-3)}.btn.link:hover:not(:disabled){background:0 0;text-decoration:underline}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.ml-auto{margin-left:auto}.row.align-center{align-items:center}.splash-screen{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:1rem;height:100vh;display:flex}.splash-screen.no-access{text-align:center;padding:0 1.5rem}.calendar-page{background:var(--bg);flex-direction:column;flex:1;min-height:0;display:flex}.calendar-alert{text-align:center;margin:.5rem}.calendar-body{flex:1;min-height:0;overflow:hidden}.calendar-loading{justify-content:center;align-items:center;height:100%;display:flex}.calendar-nav-row{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem;display:flex}.calendar-date-nav{align-items:center;gap:.5rem;display:flex}.nav-arrow-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.375rem;font-size:1rem;line-height:1}.nav-arrow-btn:hover{background:var(--surface-2);color:var(--text)}.calendar-heading{color:var(--text);white-space:nowrap;margin:0;font-size:1.125rem}.quickadd-row{gap:.5rem;display:flex}.quickadd-row input{flex:auto}.event-pill{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:6px;padding:.125rem .25rem;font-size:11px;overflow:hidden}.event-swatch{color:var(--text);border-left:2px solid}.month-view{overscroll-behavior:contain;flex-direction:column;height:100%;display:flex;overflow-y:auto}.month-weekdays{z-index:1;background:var(--bg);border-bottom:1px solid var(--border);text-align:center;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);grid-template-columns:repeat(7,minmax(0,1fr));font-size:.75rem;font-weight:600;display:grid;position:sticky;top:0}.month-weekday{padding:.5rem 0}.month-weeks{flex-direction:column;flex:1;display:flex}.month-week{border-bottom:1px solid var(--border);background:var(--surface);flex-direction:column;flex:1;min-height:0;padding-top:.2rem;display:flex}.month-week:last-child{border-bottom:none}.month-week-daynums{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.month-daynum-cell{min-width:0;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;padding:.15rem 0 .3rem;display:flex}.month-daynum-cell.out-of-month{color:var(--muted);opacity:.6}.month-cell-daynum{border-radius:999px;flex:none;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.75rem;font-weight:700;display:inline-flex}.month-cell-daynum.is-today{background:var(--primary);color:#fff}.month-week-events{flex:1;grid-template-columns:repeat(7,minmax(0,1fr));align-content:start;gap:2px 4px;min-height:1.1rem;padding:0 2px .3rem;display:grid}.month-event-pill{text-align:left;min-width:0;font:inherit;background:0 0;border:none;border-left:2px solid;font-size:11px;display:block}.month-event-more{color:var(--muted);cursor:pointer;background:0 0;border:none;grid-column-start:span 1;justify-self:start;padding:.05rem .3rem;font-size:10px;font-weight:700}.month-event-more:hover{color:var(--text)}.time-grid{flex-direction:column;height:100%;display:flex;overflow:hidden}.time-grid-row{display:grid}.time-grid-row.bordered{border-bottom:1px solid var(--border)}.time-grid-daycell-header{border-left:1px solid var(--border);text-align:center;padding:.5rem 0}.time-grid-weekday{text-transform:uppercase;color:var(--muted);font-size:.75rem}.time-grid-daynum{color:var(--text);font-size:.875rem;font-weight:700}.time-grid-allday-label{text-align:right;color:var(--muted);padding:.25rem .25rem .25rem 0;font-size:10px}.time-grid-allday-col{border-left:1px solid var(--border);flex-direction:column;gap:.125rem;padding:.25rem;display:flex}.time-grid-body{flex:1;position:relative;overflow-y:auto}.time-grid-hour-label{border-bottom:1px solid var(--border);text-align:right;color:var(--muted);padding-right:.25rem;font-size:10px}.time-grid-daycol{border-left:1px solid var(--border);position:relative}.time-grid-hour-slot{border-bottom:1px solid var(--border);cursor:pointer}.time-event{cursor:pointer;border-radius:6px;padding:0 .25rem;font-size:11px;position:absolute;left:2px;right:2px;overflow:hidden}.cal-modal-backdrop{z-index:200;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=640px){.cal-modal-backdrop{align-items:center}}.cal-modal-panel{border-bottom-right-radius:0;border-bottom-left-radius:0;width:100%;max-width:28rem;min-height:70vh;max-height:90vh;overflow-y:auto}@media (width>=640px){.cal-modal-panel{border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);min-height:auto}}.modal-header-row{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.modal-source-row{align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.modal-eyebrow{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.75rem;font-weight:600}.modal-title{color:var(--text);margin:0 0 .75rem;font-size:1.125rem}.modal-title.no-margin{margin:0}.modal-line{margin:0 0 .25rem;font-size:.9rem}.modal-description{white-space:pre-wrap;margin:0 0 .75rem;font-size:.9rem}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.75rem;display:flex}.modal-actions-split{justify-content:space-between;align-items:center;margin-top:1rem;display:flex}.event-color-dot{border-radius:999px;width:.625rem;height:.625rem;display:inline-block}.calendar-list-item{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;align-items:center;gap:.5rem;padding:.5rem;display:flex}.calendar-swatch{border-radius:999px;flex-shrink:0;width:.75rem;height:.75rem;display:inline-block}.calendar-list-item-main{flex:auto;min-width:0}.calendar-list-item-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:.875rem;font-weight:600;overflow:hidden}.calendar-list-item-error{text-overflow:ellipsis;white-space:nowrap;color:var(--negative);font-size:.75rem;overflow:hidden}.calendar-toggle-label{align-items:center;gap:.25rem;display:flex}.add-calendar-form{border-top:1px solid var(--border);padding-top:.75rem}.add-calendar-heading{color:var(--text);font-size:.875rem;font-weight:600}.ksp-logo-compact{align-items:baseline;gap:.4rem;display:inline-flex}.ksp-logo-compact .ksp-logo-mark{letter-spacing:.02em;color:var(--primary);font-size:1.15rem;font-weight:800}.ksp-logo-compact .ksp-logo-tagline{color:var(--text);font-size:.95rem;font-weight:700}.ksp-logo-full{flex-direction:column;align-items:center;gap:.75rem;display:flex}.ksp-logo-full .ksp-logo-mark{letter-spacing:.05em;color:var(--text);font-size:2.75rem;font-weight:800}.ksp-logo-divider{align-items:center;width:160px;max-width:60%;display:flex}.ksp-logo-line{background:var(--primary);flex:1;height:2px}.ksp-logo-dot{background:var(--primary);border-radius:999px;flex:none;width:8px;height:8px}.ksp-logo-dot-mid{background:var(--surface);border:1.5px solid var(--primary);width:7px;height:7px}.ksp-logo-sub{letter-spacing:.35em;color:var(--muted);text-transform:uppercase;font-size:.8rem;font-weight:700}
