.kai-file-input{gap:var(--kai-space-2);flex-direction:column;display:flex}.kai-file-input-waiting{color:var(--kai-color-ink-muted);font-size:var(--kai-text-small-size)}.kai-file-list{gap:var(--kai-space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.kai-file-item{align-items:center;gap:var(--kai-space-2);padding:var(--kai-space-2) var(--kai-space-3);border:var(--kai-border-width) solid var(--kai-color-line);border-radius:var(--kai-radius-md);background:var(--kai-color-surface);display:flex}.kai-file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--kai-color-ink);font-size:var(--kai-text-body-size);flex:auto;overflow:hidden}.kai-file-size{color:var(--kai-color-ink-muted);font-size:var(--kai-text-small-size);font-variant-numeric:tabular-nums;flex:none}.kai-file-progress{align-items:center;gap:var(--kai-space-2);padding:var(--kai-space-2) var(--kai-space-3);border:var(--kai-border-width) solid var(--kai-color-line);border-radius:var(--kai-radius-md);background:var(--kai-color-surface-sunken);display:flex}.kai-file-progress progress{min-width:0;height:var(--kai-space-2);accent-color:var(--kai-color-accent);flex:auto}.kai-file-drop{align-items:center;gap:var(--kai-space-1);padding:var(--kai-space-4) var(--kai-space-3);border:var(--kai-border-width) dashed var(--kai-color-line-strong);border-radius:var(--kai-radius-md);background:var(--kai-color-surface-sunken);text-align:center;cursor:pointer;flex-direction:column;display:flex}.kai-file-drop strong{color:var(--kai-color-ink);font-size:var(--kai-text-body-size);font-weight:var(--kai-weight-strong)}.kai-file-drop input{display:none}.kai-file-drop.is-over{border-color:var(--kai-color-accent);background:var(--kai-color-accent-soft,var(--kai-color-surface-sunken))}.kai-file-drop.is-disabled{opacity:.6}.kai-file-hint{color:var(--kai-color-ink-muted);font-size:var(--kai-text-small-size);margin:0}.kai-file-error{color:var(--kai-color-danger-ink,var(--kai-color-ink));font-size:var(--kai-text-small-size);margin:0}
.code-page{gap:var(--kai-space-5);padding:var(--kai-space-7) var(--kai-space-6) var(--kai-space-11);flex-direction:column;display:flex}.code-page-head{justify-content:space-between;align-items:flex-start;gap:var(--kai-space-5);display:flex}.code-page-heading{min-width:0}.code-page-title{font-size:var(--kai-text-title-size);font-weight:var(--kai-weight-strong);line-height:var(--kai-text-title-line);letter-spacing:-.01em;margin:0}.code-page-description{max-width:640px;margin:var(--kai-space-1) 0 0;color:var(--kai-color-ink-muted);font-size:var(--kai-text-small-size);line-height:var(--kai-text-small-line)}.code-page-actions{align-items:center;gap:var(--kai-space-2);flex-wrap:wrap;flex-shrink:0;display:flex}
.login{grid-template-columns:1fr;min-height:100%;display:grid}@media (min-width:900px){.login-image-left,.login-image-right{grid-template-columns:1fr 1fr;min-height:calc(100vh - 56px)}}.login-picture{display:none;overflow:hidden}@media (min-width:900px){.login-picture{display:block}}.login-picture img,.login-picture-accent{object-fit:cover;width:100%;height:100%;min-height:320px;display:block}.login-picture-accent{background:var(--kai-color-accent)}.login-card{padding:var(--kai-space-9) var(--kai-space-6);flex-direction:column;justify-content:center;align-items:center;display:flex}.login-form,.login-signed{gap:var(--kai-space-4);flex-direction:column;width:100%;max-width:380px;display:flex}.login-title{font-size:var(--kai-text-title-size);font-weight:var(--kai-weight-strong);line-height:var(--kai-text-title-line);margin:0}.login-hint{color:var(--kai-color-ink-muted);font-size:var(--kai-text-small-size);line-height:var(--kai-text-small-line);margin:0}.login-links{gap:var(--kai-space-4);flex-wrap:wrap;display:flex}.login-link{color:var(--kai-color-accent);font:inherit;font-size:var(--kai-text-small-size);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.login-actions{gap:var(--kai-space-2);display:flex}.login-preview-note{width:100%;max-width:380px;margin:var(--kai-space-4) 0 0;color:var(--kai-color-ink-muted);font-size:var(--kai-text-small-size);line-height:var(--kai-text-small-line)}
.shell{background:var(--kai-color-canvas);min-height:100vh;color:var(--kai-color-ink);grid-template-rows:auto 1fr;grid-template-columns:1fr;display:grid}.shell-side .shell-side{display:none}@media (min-width:900px){.shell-side{grid-template-columns:240px 1fr}.shell-side .shell-bar{grid-column:1/-1}.shell-side .shell-side{display:block}.shell-side .shell-toggle{display:none}}.shell-bar{align-items:center;gap:var(--kai-space-4);min-height:56px;padding:var(--kai-space-2) var(--kai-space-5);border-bottom:var(--kai-border);background:var(--kai-color-surface);display:flex}.shell-spacer{flex:1}.shell-toggle{padding:var(--kai-space-1) var(--kai-space-2);border:var(--kai-border);border-radius:var(--kai-radius-sm);background:var(--kai-color-surface);color:var(--kai-color-ink);font-size:var(--kai-text-body-size);cursor:pointer}.shell-brand{align-items:center;gap:var(--kai-space-2);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:flex}.shell-logo{width:auto;height:28px}.shell-name{font-weight:var(--kai-weight-strong);font-size:var(--kai-text-body-size)}.shell-menu{gap:var(--kai-space-1);display:flex}.shell-top .shell-menu{flex-wrap:wrap;align-items:center}.shell-side .shell-side .shell-menu{padding:var(--kai-space-4) var(--kai-space-3);flex-direction:column}.shell-side .shell-side{border-right:var(--kai-border);background:var(--kai-color-surface)}.shell-side.shell-open .shell-side{display:block}.shell-menu-item{align-items:center;gap:var(--kai-space-1);padding:var(--kai-space-2) var(--kai-space-3);border-radius:var(--kai-radius-sm);color:var(--kai-color-ink-soft);font:inherit;font-size:var(--kai-text-small-size);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.shell-menu-item:hover{background:var(--kai-color-surface-sunken);color:var(--kai-color-ink)}.shell-menu-item-active{background:var(--kai-color-accent-soft);color:var(--kai-color-accent-strong);font-weight:var(--kai-weight-strong)}.shell-menu-lock{color:var(--kai-color-ink-muted)}.shell-doors{align-items:center;gap:var(--kai-space-2);display:flex}.shell-account{padding:var(--kai-space-1) var(--kai-space-2);border-radius:var(--kai-radius-sm);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-end;line-height:1.2;display:flex}.shell-account:hover{background:var(--kai-color-surface-sunken)}.shell-account-name{font-size:var(--kai-text-small-size);font-weight:var(--kai-weight-strong)}.shell-account-hint{font-size:var(--kai-text-micro-size);color:var(--kai-color-ink-muted)}.shell.shell-focused{grid-template-columns:1fr}.shell-main{min-width:0}.shell-main-narrow,.shell-main-regular,.shell-main-wide{width:100%;margin-inline:auto}.shell-main-narrow{max-width:640px}.shell-main-regular{max-width:960px}.shell-main-wide{max-width:1280px}.shell-quiet{padding:var(--kai-space-7) var(--kai-space-6);color:var(--kai-color-ink-muted)}.shell-denied{align-items:flex-start;gap:var(--kai-space-3);padding:var(--kai-space-9) var(--kai-space-6);flex-direction:column;display:flex}.shell-denied-title{font-size:var(--kai-text-title-size);font-weight:var(--kai-weight-strong);line-height:var(--kai-text-title-line);margin:0}.shell-denied-hint{max-width:52ch;color:var(--kai-color-ink-muted);font-size:var(--kai-text-small-size);line-height:var(--kai-text-small-line);margin:0}.shell-menu-group{flex-direction:column;display:flex}.shell-menu-group+.shell-menu-group{margin-top:var(--kai-space-3)}.shell-menu-group-label{margin:0 0 var(--kai-space-1);padding:0 var(--kai-space-3);font-size:var(--kai-text-micro-size);line-height:var(--kai-text-micro-line);font-weight:var(--kai-weight-strong);letter-spacing:.04em;text-transform:uppercase;color:var(--kai-color-ink-muted)}
.account{gap:var(--kai-space-4);flex-direction:column;max-width:420px;display:flex}.account-line{gap:var(--kai-space-1);flex-direction:column;margin:0;display:flex}.account-label{color:var(--kai-color-ink-muted);font-size:var(--kai-text-micro-size)}.account-actions{gap:var(--kai-space-2);display:flex}.account-quiet{color:var(--kai-color-ink-muted)}
