:root{--ui-color-primary: #1c64f2;--ui-color-primary-hover: #1554d1;--ui-color-bg: #f6f7f9;--ui-color-surface: #ffffff;--ui-color-text: #1c2733;--ui-color-muted: #5c6b7a;--ui-color-border: #cdd5de;--ui-color-danger-bg: #fdecec;--ui-color-danger-text: #b42318;--ui-color-success-bg: #e8f6ee;--ui-color-success-text: #17703c;--ui-radius-sm: 8px;--ui-radius-md: 12px;--ui-shadow-card: 0 1px 4px rgba(0, 0, 0, .08);--ui-font: system-ui, -apple-system, sans-serif;--ui-space-xs: .25rem;--ui-space-sm: .5rem;--ui-space-md: .75rem;--ui-space-lg: 1rem;--ui-space-xl: 2rem}.ui-root{font-family:var(--ui-font);background:var(--ui-color-bg);color:var(--ui-color-text);min-height:100vh;margin:0}.ui-card{background:var(--ui-color-surface);border-radius:var(--ui-radius-md);padding:var(--ui-space-xl);box-shadow:var(--ui-shadow-card);max-width:420px;margin:8vh auto}.ui-card--wide{max-width:620px}.ui-card__title{font-size:1.4rem;margin:0 0 var(--ui-space-lg)}.ui-btn{padding:.65rem 1rem;border:none;border-radius:var(--ui-radius-sm);font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s}.ui-btn:disabled{opacity:.6;cursor:default}.ui-btn--primary{background:var(--ui-color-primary);color:#fff}.ui-btn--primary:hover:not(:disabled){background:var(--ui-color-primary-hover)}.ui-btn--secondary{background:transparent;color:var(--ui-color-primary);border:1px solid var(--ui-color-border)}.ui-btn--danger{background:var(--ui-color-danger-text);color:#fff}.ui-btn--sm{padding:.4rem .7rem;font-size:.9rem}.ui-btn--full{width:100%}.ui-form{display:flex;flex-direction:column;gap:var(--ui-space-md)}.ui-field{font-size:.85rem;font-weight:600;display:flex;flex-direction:column;gap:var(--ui-space-xs)}.ui-field__control{padding:.6rem .7rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);font-size:1rem;font-family:inherit;color:inherit;background:var(--ui-color-surface)}.ui-field__control:focus{outline:2px solid var(--ui-color-primary);outline-offset:-1px}.ui-field--inline{flex-direction:row;align-items:center;gap:var(--ui-space-sm)}.ui-alert{border-radius:var(--ui-radius-sm);padding:.6rem .8rem;font-size:.9rem}.ui-alert--error{background:var(--ui-color-danger-bg);color:var(--ui-color-danger-text)}.ui-alert--success{background:var(--ui-color-success-bg);color:var(--ui-color-success-text)}.ui-linkgroup{margin-top:var(--ui-space-lg);font-size:.9rem;display:flex;flex-direction:column;gap:.4rem}.ui-linkgroup a,a.ui-link{color:var(--ui-color-primary)}.ui-listitem{border-top:1px solid #e3e8ee;padding:.9rem 0}.ui-listitem p{margin:.3rem 0}.ui-heading{font-size:1.05rem;margin:var(--ui-space-lg) 0 var(--ui-space-sm)}*{box-sizing:border-box}body{margin:0;font-family:var(--ui-font);background:var(--ui-color-bg);color:var(--ui-color-text)}.home{max-width:720px;margin:0 auto;padding:2rem 1rem 3rem}.home-logo{display:block;width:100%;max-width:300px;height:auto;margin:0 auto 1.5rem}.home-greeting__title{font-size:1.5rem;margin:0 0 .2rem}.home-greeting__sub{margin:0 0 1.2rem;color:var(--ui-color-muted)}.home-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:1rem}.home-tile{display:flex;flex-direction:column;gap:.5rem;padding:1.1rem;background:var(--ui-color-surface);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);text-decoration:none;color:var(--ui-color-text);transition:box-shadow .15s,border-color .15s,transform .1s}.home-tile:hover{border-color:var(--ui-color-primary);box-shadow:var(--ui-shadow-card);transform:translateY(-1px)}.home-tile__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:#1c64f21a;background:color-mix(in srgb,var(--ui-color-primary) 12%,transparent);color:var(--ui-color-primary)}.home-tile__title{font-weight:600}.home-tile__desc{font-size:.85rem;color:var(--ui-color-muted)}.agenda-section{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.4rem}.agenda-section .ui-heading{margin:0}.agenda-day{display:flex;gap:.6rem;align-items:baseline;padding:.4rem 0;border-bottom:1px solid var(--ui-color-border)}.agenda-day__name{min-width:5.5rem;font-weight:600}.agenda-day__slots{display:flex;gap:.4rem;flex-wrap:wrap}.agenda-chip{background:var(--ui-color-bg);border:1px solid var(--ui-color-border);border-radius:999px;padding:.1rem .55rem;font-size:.85rem}.agenda-list{margin:.4rem 0;padding-left:1.1rem}.agenda-list li{margin:.3rem 0}.weekday-picker__days,.weekday-picker__presets{display:flex;gap:.3rem;flex-wrap:wrap}.weekday-picker__days{margin:.2rem 0 .4rem}.timepicker{position:relative}.timepicker__menu{position:absolute;top:100%;left:0;right:0;z-index:30;max-height:220px;overflow-y:auto;margin-top:4px;background:var(--ui-color-surface);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);box-shadow:var(--ui-shadow-card);padding:.25rem}.timepicker__opt{display:block;width:100%;text-align:left;padding:.4rem .6rem;border:none;border-radius:var(--ui-radius-sm, 6px);background:none;cursor:pointer;color:var(--ui-color-text);font:inherit;font-weight:400}.timepicker__opt:hover{background:var(--ui-color-bg)}.timepicker__opt--selected{background:#1c64f21f;background:color-mix(in srgb,var(--ui-color-primary) 15%,transparent);font-weight:600}.app-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:1rem;height:56px;padding:0 1rem;background:var(--ui-color-surface);border-bottom:1px solid var(--ui-color-border)}.app-brand{display:inline-flex;align-items:center;gap:.5rem;min-width:0;font-weight:700;color:var(--ui-color-text);text-decoration:none}.app-brand__logo{height:30px;width:auto;flex:none}.app-brand__text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-usermenu{position:relative}.app-usermenu__btn{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem .25rem .25rem;border:1px solid transparent;border-radius:999px;background:none;cursor:pointer;color:var(--ui-color-text);font:inherit}.app-usermenu__btn:hover{background:var(--ui-color-bg)}.app-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--ui-color-primary);color:#fff;font-size:.8rem;font-weight:700;flex:none}.app-usermenu__name{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-usermenu__caret{font-size:.7rem;color:var(--ui-color-muted)}.app-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--ui-color-surface);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);box-shadow:var(--ui-shadow-card);padding:.35rem;z-index:40}.app-menu__head{padding:.5rem .6rem;border-bottom:1px solid var(--ui-color-border);margin-bottom:.35rem}.app-menu__name{font-weight:600}.app-menu__email{font-size:.8rem;color:var(--ui-color-muted);overflow:hidden;text-overflow:ellipsis}.app-menu__note{font-size:.78rem;color:var(--ui-color-danger-text);background:var(--ui-color-danger-bg);border-radius:var(--ui-radius-sm, 6px);padding:.3rem .6rem;margin:0 .1rem .35rem}.app-menu__item{display:block;width:100%;text-align:left;padding:.5rem .6rem;border:none;border-radius:var(--ui-radius-sm, 6px);background:none;cursor:pointer;color:var(--ui-color-text);font:inherit}.app-menu__item:hover{background:var(--ui-color-bg)}@media(max-width:480px){.app-usermenu__name{display:none}}:root{--cal-confirmed-bg: #1f9d55;--cal-requested-bg: #d97706;--cal-done-bg: #64748b;--cal-cancelled-bg: #94a3b8;--cal-free-bg: rgba(28, 100, 242, .09);--cal-free-border: rgba(28, 100, 242, .45);--cal-block-bg: rgba(92, 107, 122, .14)}.cal-page{max-width:1100px;margin:0 auto;padding:1.2rem 1rem 3rem}.cal-page__top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.cal-page__title{font-size:1.5rem;margin:0}.cal-page__nav{display:flex;gap:1rem;font-size:.9rem}.cal-page__nav a{color:var(--ui-color-primary)}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;margin:.9rem 0 .5rem}.cal-toolbar__nav{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.cal-toolbar__period{font-weight:600;margin-left:.5rem;text-transform:capitalize}.cal-toolbar__views{display:flex;gap:.3rem}.cal-legend{display:flex;gap:.9rem;flex-wrap:wrap;font-size:.78rem;color:var(--ui-color-muted);margin-bottom:.6rem}.cal-legend__item{display:inline-flex;align-items:center;gap:.3rem}.cal-swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.cal-grid{border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);background:var(--ui-color-surface);overflow:hidden}.cal-grid__head{display:flex;border-bottom:1px solid var(--ui-color-border)}.cal-grid__gutter-head{width:56px;flex:none}.cal-grid__dayhead{flex:1;min-width:80px;text-align:center;padding:.4rem .2rem}.cal-grid__dayname{display:block;color:var(--ui-color-muted);text-transform:uppercase;font-size:.68rem;letter-spacing:.03em}.cal-grid__daynum{font-weight:700;font-size:1rem}.cal-grid__dayhead--today .cal-grid__daynum{display:inline-flex;align-items:center;justify-content:center;width:1.7em;height:1.7em;border-radius:50%;background:var(--ui-color-primary);color:#fff}.cal-grid__scroll{max-height:70vh;overflow:auto;scrollbar-gutter:stable}.cal-grid__body{display:flex;position:relative}.cal-grid__gutter{width:56px;flex:none}.cal-grid__hour{position:relative;border-top:1px solid var(--ui-color-border)}.cal-grid__hour span{position:absolute;top:-.6em;right:.4rem;font-size:.68rem;color:var(--ui-color-muted);background:var(--ui-color-surface);padding:0 2px}.cal-grid__col{flex:1;min-width:80px;position:relative;border-left:1px solid var(--ui-color-border)}.cal-band{position:absolute;left:2px;right:2px;border-radius:4px;pointer-events:none}.cal-band--free{background:var(--cal-free-bg);border:1px dashed var(--cal-free-border)}.cal-band--block{background-color:var(--cal-block-bg);background-image:repeating-linear-gradient(45deg,rgba(92,107,122,.35) 0,rgba(92,107,122,.35) 2px,transparent 2px,transparent 7px)}.cal-event{border:none;border-radius:6px;padding:2px 6px;color:#fff;font-family:inherit;font-size:.74rem;line-height:1.15;text-align:left;overflow:hidden;cursor:pointer;display:flex;flex-direction:row;align-items:center;gap:3px;z-index:1}.cal-event__icon{flex:none;display:inline-flex;align-items:center}.cal-event__time{font-weight:700}.cal-event__name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-event__tag{font-size:.6rem;opacity:.85}.cal-event--confirmed{background:var(--cal-confirmed-bg)}.cal-event--requested{background:var(--cal-requested-bg)}.cal-event--done{background:var(--cal-done-bg)}.cal-event--cancelled{background:var(--cal-cancelled-bg);text-decoration:line-through}.cal-chip{display:block;width:100%;border:none;border-radius:4px;padding:1px 5px;margin-top:2px;color:#fff;font-family:inherit;font-size:.68rem;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.cal-chip__time{font-weight:700}.cal-chip__icon{display:inline-flex;vertical-align:-2px;margin-right:1px}.cal-month{border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);background:var(--ui-color-surface);overflow:hidden}.cal-month__head{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--ui-color-border)}.cal-month__weekday{text-align:center;padding:.4rem;font-size:.72rem;color:var(--ui-color-muted);text-transform:uppercase;letter-spacing:.03em}.cal-month__grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(96px,auto)}.cal-month__cell{border-right:1px solid var(--ui-color-border);border-bottom:1px solid var(--ui-color-border);padding:.25rem .3rem;overflow:hidden;cursor:pointer;min-width:0}.cal-month__cell--outside{background:var(--ui-color-bg)}.cal-month__cell--outside .cal-month__daynum{color:var(--ui-color-muted)}.cal-month__daynum{font-size:.8rem;font-weight:600}.cal-month__daynum--today{display:inline-flex;align-items:center;justify-content:center;min-width:1.6em;height:1.6em;padding:0 .35em;border-radius:999px;background:var(--ui-color-primary);color:#fff}.cal-month__more{font-size:.66rem;color:var(--ui-color-muted);margin-top:2px}.cal-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.cal-modal__card{background:var(--ui-color-surface);border-radius:var(--ui-radius-md);padding:var(--ui-space-xl);width:100%;max-width:360px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 30px #0003}.cal-hint{color:var(--ui-color-muted);font-size:.85rem;margin:.6rem 0 0}.cal-modal__bar{height:6px;border-radius:4px;margin-bottom:.9rem}.cal-modal__title{margin:0 0 .5rem;font-size:1.2rem}.cal-modal__line{margin:.25rem 0}.cal-modal__actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:1.2rem}
