.kn-skeleton{padding:var(--space-ui-xl);display:grid;gap:var(--space-ui-xl)}.kn-skeleton__row{display:grid;gap:var(--space-ui-sm)}.kn-skeleton__line{display:block;height:var(--font-ui-size);width:100%;border-radius:var(--radius-sm);background:var(--color-bg-hover)}.kn-skeleton__line--short{width:40%}.kn-form{display:flex;flex-direction:column;gap:var(--space-stack-md)}.kn-form,.kn-form--md,.kn-field--md{--control-h: var(--size-control-md);--control-px: var(--control-pad-md);--control-py: var(--space-ui-md);--control-fs: var(--control-font-md)}.kn-form--sm,.kn-field--sm{--control-h: var(--size-control-sm);--control-px: var(--control-pad-sm);--control-py: var(--space-ui-sm);--control-fs: var(--control-font-sm)}.kn-form--lg,.kn-field--lg{--control-h: var(--size-control-lg);--control-px: var(--control-pad-lg);--control-py: var(--space-ui-lg);--control-fs: var(--control-font-lg)}.kn-input{box-sizing:border-box;min-height:var(--control-h, var(--size-control-md));padding:0 var(--control-px, var(--control-pad-md));border:var(--p-border-width) solid var(--color-border);border-radius:var(--radius-control);background:var(--color-bg-elevated);color:var(--color-form-text);font-family:var(--font-body-family);font-size:var(--control-fs, var(--font-ui-size))}.kn-input::placeholder{color:var(--color-text-muted)}.kn-input:focus{border-color:var(--color-text-secondary);outline:none}.kn-input:focus-visible{border-color:var(--color-text-secondary);outline:var(--p-border-width) solid var(--color-focus-ring);outline-offset:1px}[data-theme=dark] .kn-input{color-scheme:dark}.kn-textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:calc(var(--control-h, var(--size-control-lg)) * 2.2);padding:var(--control-py, var(--space-ui-md)) var(--control-px, var(--space-pad-x-sm));border:var(--p-border-width) solid var(--color-border);border-radius:var(--radius-control);background:var(--color-bg-elevated);color:var(--color-form-text);font-family:var(--font-body-family);font-size:var(--control-fs, var(--font-ui-lg-size));line-height:var(--font-body-line-height)}.kn-textarea::placeholder{color:var(--color-text-muted)}.kn-textarea:focus{border-color:var(--color-text-secondary);outline:none}.kn-textarea:focus-visible{border-color:var(--color-text-secondary);outline:var(--p-border-width) solid var(--color-focus-ring);outline-offset:1px}.kn-option{display:inline-flex;align-items:center;gap:var(--space-inline-sm);min-height:var(--control-h, var(--size-control-md));font-family:var(--font-body-family);font-size:var(--control-fs, var(--font-ui-size));color:var(--color-text);cursor:pointer}.kn-option__hint{color:var(--color-text-muted)}.kn-check,.kn-radio{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;box-sizing:border-box;margin:0;font-size:var(--control-fs, var(--font-ui-size));width:1.15em;height:1.15em;border:var(--p-border-width) solid var(--color-border);background:var(--color-bg-elevated);display:inline-grid;place-content:center;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.kn-check{border-radius:var(--radius-sm)}.kn-radio{border-radius:50%}.kn-check:checked,.kn-radio:checked{background:var(--color-brand);border-color:var(--color-border)}.kn-check:checked:after{content:"";width:.32em;height:.6em;border:solid var(--p-color-neutral-20);border-width:0 .16em .16em 0;transform:translateY(-.08em) rotate(45deg)}.kn-radio:checked:after{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--p-color-neutral-20)}.kn-check:focus-visible,.kn-radio:focus-visible{outline:var(--p-border-width) solid var(--color-focus-ring);outline-offset:2px}.kn-toggle{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;box-sizing:border-box;margin:0;cursor:pointer;font-size:var(--control-fs, var(--font-ui-size));position:relative;width:2.6em;height:1.5em;border-radius:1em;background:var(--color-surface-secondary);border:var(--p-border-width) solid var(--color-border);transition:background-color .15s ease,border-color .15s ease}.kn-toggle:after{content:"";position:absolute;top:50%;left:.18em;width:1.05em;height:1.05em;border-radius:50%;background:var(--color-text);transform:translateY(-50%);transition:left .15s ease,background-color .15s ease}.kn-toggle:checked{background:var(--color-brand);border-color:var(--color-border)}.kn-toggle:checked:after{left:calc(100% - 1.23em);background:var(--p-color-neutral-20)}.kn-toggle:focus-visible{outline:var(--p-border-width) solid var(--color-focus-ring);outline-offset:2px}.kn-hdr-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-gap-xs)}.kn-hdr-link{font-family:var(--p-font-family-mono);font-size:var(--font-ui-sm-size);color:var(--color-text-muted);text-decoration:none;max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kn-hdr-link:hover{color:var(--color-text)}.kn-search{display:inline-flex;align-items:center;gap:var(--space-inline-sm);box-sizing:border-box;min-height:var(--control-h, var(--size-control-sm));color:var(--color-text-muted);background:var(--color-bg-elevated);border:var(--p-border-width) solid var(--color-border);border-radius:var(--radius-control);padding:0 var(--control-px, var(--space-inline-md));font-family:var(--font-body-family);font-size:var(--control-fs, var(--font-ui-sm-size))}.kn-search--sm{--control-h: var(--size-control-sm);--control-px: var(--control-pad-sm);--control-fs: var(--control-font-sm)}.kn-search--md{--control-h: var(--size-control-md);--control-px: var(--control-pad-md);--control-fs: var(--control-font-md)}.kn-search--lg{--control-h: var(--size-control-lg);--control-px: var(--control-pad-lg);--control-fs: var(--control-font-lg)}.kn-search--wide{min-width:16rem}.kn-search__input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--color-text);font-family:var(--font-body-family);font-size:var(--control-fs, var(--font-ui-sm-size))}.kn-search__input::placeholder{color:var(--color-text-muted)}.kn-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;font-family:var(--font-body-family);font-size:var(--control-fs, var(--font-ui-sm-size));color:var(--color-form-text);background-color:var(--color-bg-elevated);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%239fa597' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-inline-md) center;background-size:1rem;border:var(--p-border-width) solid var(--color-border);border-radius:var(--radius-control);box-sizing:border-box;min-height:var(--control-h, var(--size-control-sm));padding:0 calc(var(--control-px, var(--space-inline-md)) + 1rem + var(--space-inline-sm)) 0 var(--control-px, var(--space-inline-md));cursor:pointer}.kn-select--sm{--control-h: var(--size-control-sm);--control-px: var(--control-pad-sm);--control-fs: var(--control-font-sm)}.kn-select--md{--control-h: var(--size-control-md);--control-px: var(--control-pad-md);--control-fs: var(--control-font-md)}.kn-select--lg{--control-h: var(--size-control-lg);--control-px: var(--control-pad-lg);--control-fs: var(--control-font-lg)}.kn-select:hover{border-color:var(--color-text-muted)}.kn-select:focus-visible{outline:var(--p-border-width) solid var(--color-focus-ring);outline-offset:1px}.kn-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--control-h, var(--size-control-md));height:var(--control-h, var(--size-control-md));flex:none;color:var(--color-text-secondary);background:var(--color-bg-elevated);border:var(--p-border-width) solid var(--color-border);border-radius:var(--radius-control);cursor:pointer}.kn-icon-btn:hover{color:var(--color-text)}.kn-icon-btn-sm{--control-h: var(--size-control-sm)}.kn-icon-btn--ghost{background:none;border-color:transparent}.kn-icon-btn--ghost:hover{background:var(--color-bg-hover)}.kn-icon-btn:disabled{opacity:.4;cursor:not-allowed}.kn-avatar{display:inline-flex;align-items:center;justify-content:center;width:var(--size-avatar-md);height:var(--size-avatar-md);flex:none;overflow:hidden;background:var(--p-color-neutral-40);color:var(--p-color-neutral-100);border-radius:var(--radius-sm);font-family:var(--font-body-family);font-size:var(--font-ui-sm-size);font-weight:600;text-transform:uppercase}.kn-avatar--sm{width:var(--size-avatar-sm);height:var(--size-avatar-sm);font-size:var(--font-ui-xs-size)}.kn-avatar--lg{width:var(--size-avatar-lg);height:var(--size-avatar-lg)}.kn-avatar--xl{width:var(--size-avatar-xl);height:var(--size-avatar-xl);font-size:var(--font-ui-size)}.kn-avatar__img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.kn-avatar__initials{width:100%;height:100%;display:flex;align-items:center;justify-content:center;line-height:1;letter-spacing:.02em}.kn-nav{display:flex;flex-direction:column;min-height:0;padding:var(--space-ui-md) 0}.kn-nav-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;gap:var(--space-gap-sm);width:100%;background:transparent;border:none;border-left:2px solid transparent;padding:var(--space-ui-sm) var(--space-pad-x-sm);font-family:var(--font-body-family);font-size:var(--font-ui-size);color:var(--color-text-secondary);text-align:left;cursor:pointer}.kn-nav-item:hover{color:var(--color-text)}.kn-nav-item__icon{flex:none;color:var(--color-text-secondary)}.kn-nav-item__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kn-nav-item__count{flex:none;font-size:var(--font-ui-xs-size);color:var(--color-text-secondary)}.kn-nav-item--unread{color:var(--color-text);font-weight:600}.kn-nav-item--unread .kn-nav-item__icon{color:var(--color-text)}.kn-nav-item--unread .kn-nav-item__count{color:var(--color-text-accent);font-weight:600}.kn-nav-item--active{color:var(--color-text);font-weight:600;background:var(--color-selected-dim);border-left-color:var(--color-selected)}.kn-nav-item--active .kn-nav-item__icon{color:var(--color-text)}.kn-contact{font-size:var(--font-ui-size);font-weight:600;color:var(--color-text)}.kn-contact__addr{font-weight:400;color:var(--color-text-secondary)}.kn-accent-heading{font-family:var(--font-accent-family);font-weight:var(--font-accent-weight);font-style:var(--font-accent-style);line-height:var(--font-heading-line-height);color:var(--color-text-secondary)}.kn-page-title{font-family:var(--font-heading-family);font-weight:var(--font-heading-weight);font-size:var(--font-h3-size);line-height:var(--font-heading-line-height);color:var(--color-text);margin:0}.kn-section-heading{font-family:var(--font-accent-family);font-weight:var(--font-accent-weight);font-style:var(--font-accent-style);font-size:var(--font-h5-size);line-height:var(--font-heading-line-height);letter-spacing:var(--p-letter-spacing-none);color:var(--color-text-secondary);margin:0}.kn-card{background:var(--color-bg);border:var(--p-border-width) solid var(--color-border);border-radius:var(--radius-card);padding:var(--card-pad)}.kn-card-grid{display:grid;gap:var(--card-gap)}.kn-badge{display:inline-flex;align-items:center;padding:var(--space-ui-xs) var(--space-ui-lg);border-radius:var(--radius-pill);font-family:var(--font-body-family);font-size:var(--font-ui-xs-size);font-weight:var(--p-font-weight-medium);letter-spacing:var(--p-letter-spacing-loose);text-transform:uppercase;white-space:nowrap}.kn-badge--neutral{background:var(--color-bg-hover);color:var(--color-text-secondary)}.kn-badge--success{background:var(--color-success-bg);color:var(--color-success-text)}.kn-badge--error{background:var(--color-error-bg);color:var(--color-error-text)}.kn-badge--warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.kn-badge--info{background:var(--color-info-bg);color:var(--color-info-text)}.kn-badge--accent{background:var(--color-brand-dim);color:var(--color-brand)}.kn-highlight{background:var(--color-highlight);color:var(--color-highlight-text);padding:.25em .75em;margin:0 -.75em;border-radius:var(--radius-sm);-webkit-box-decoration-break:clone;box-decoration-break:clone}.kn-period-nav{position:relative;display:flex;align-items:center;gap:var(--space-ui-xs)}.kn-period-nav__label{display:inline-flex;align-items:center;gap:var(--space-ui-sm);min-height:var(--size-control-sm);padding:0 var(--control-pad-sm);border:0;border-radius:var(--radius-control);background:none;color:var(--color-text);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer}.kn-period-nav__label:hover{background:var(--color-surface-secondary)}.kn-period-nav__label svg{color:var(--color-text-muted)}.kn-period-nav__text{min-width:11ch;text-align:left}.kn-period-nav__cal{position:absolute;top:calc(100% + var(--space-ui-xs));left:0;z-index:20;display:flex;background:var(--color-bg-alt);border:var(--p-border-width) solid var(--color-border);border-radius:var(--radius-card);box-shadow:0 8px 24px #141a0e1f;overflow:hidden}.kn-period-nav__presets{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-ui-2xs);min-width:9rem;padding:var(--space-ui-lg);border-right:var(--p-border-width) solid var(--color-border-subtle)}.kn-period-nav__preset{border:0;border-radius:var(--radius-control);padding:var(--space-ui-sm) var(--space-ui-md);background:none;color:var(--color-text-muted);font:inherit;font-size:var(--font-ui-sm-size);text-align:left;cursor:pointer}.kn-period-nav__preset:hover{background:var(--color-surface-secondary);color:var(--color-text)}.kn-period-nav__body{display:flex;flex-direction:column;gap:var(--space-ui-md);padding:var(--space-ui-lg)}.kn-period-nav__month{display:flex;align-items:center;justify-content:space-between;gap:var(--space-ui-md);font-size:var(--font-ui-sm-size)}.kn-period-nav__grid{display:grid;grid-template-columns:auto repeat(7,var(--size-control-sm));gap:var(--space-ui-2xs) 0;align-items:center}.kn-period-nav__weekday{display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--font-ui-xs-size)}.kn-period-nav__weeknum{padding-right:var(--space-ui-md);color:var(--color-text-muted);font-size:var(--font-ui-xs-size);font-variant-numeric:tabular-nums;text-align:right}.kn-period-nav__weeknum--pick{border:0;background:none;font-family:inherit;cursor:pointer;border-radius:var(--radius-control);padding-top:var(--space-ui-2xs);padding-bottom:var(--space-ui-2xs)}.kn-period-nav__weeknum--pick:hover{color:var(--color-text);background:var(--color-surface-secondary)}.kn-period-nav__day{display:flex;align-items:center;justify-content:center;height:var(--size-control-sm);border:0;border-radius:var(--radius-control);background:none;color:var(--color-text);font:inherit;font-size:var(--font-ui-sm-size);font-variant-numeric:tabular-nums;cursor:pointer}.kn-period-nav__day:hover{background:var(--color-surface-secondary)}.kn-period-nav__day--out{color:var(--color-text-muted)}.kn-period-nav__day--today{box-shadow:inset 0 0 0 var(--p-border-width) var(--color-border)}.kn-period-nav__day--in-band{background:var(--color-selected-dim);border-radius:0}.kn-period-nav__day--band-start{border-radius:var(--radius-control) 0 0 var(--radius-control)}.kn-period-nav__day--band-end{border-radius:0 var(--radius-control) var(--radius-control) 0}.kn-period-nav__day--selected,.kn-period-nav__day--range-edge{background:var(--color-selected);color:var(--color-bg-alt)}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body-family);font-size:var(--font-ui-size);font-weight:var(--font-body-weight);line-height:var(--font-body-line-height);-webkit-font-smoothing:antialiased}
