.ksel-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);width:100%;min-width:240px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink-1);font-family:inherit;font-size:var(--fs-sm);line-height:var(--lh-sm);text-align:left;cursor:pointer;transition:border-color var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard)}.ksel-trigger:hover:not([data-disabled]){border-color:var(--ink-3)}.ksel-trigger:focus-visible{outline:none;border-color:var(--focus-ring);box-shadow:var(--sh-focus)}.ksel-trigger[data-popup-open]{border-color:var(--accent)}.ksel-trigger[data-disabled]{background:var(--surface-2);color:var(--ink-3);cursor:not-allowed}.ksel-trigger.ksel-compact{min-width:0;padding:4px 6px;font-size:var(--fs-xs);border-radius:var(--r-xs)}.ksel-trigger.ksel-tap{min-width:0;min-height:44px;padding:10px 12px}.ksel-trigger.ksel-lg{min-width:0;padding:11px 13px;border-radius:var(--r-md);font-size:var(--fs-body)}.ksel-value{display:flex;align-items:baseline;gap:var(--sp-2);min-width:0}.ksel-value-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ksel-placeholder,.ksel-value-hint{color:var(--ink-3);font-size:var(--fs-xs);white-space:nowrap}.ksel-icon{display:inline-flex;flex-shrink:0;color:var(--ink-3);transition:transform var(--dur-base) var(--ease-standard)}.ksel-icon[data-popup-open]{transform:rotate(180deg)}.ksel-positioner{z-index:4100;pointer-events:auto}.ksel-popup{pointer-events:auto;min-width:var(--anchor-width);max-width:min(420px,var(--available-width));max-height:min(320px,var(--available-height));overflow-y:auto;overscroll-behavior:contain;padding:var(--sp-1);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--sh-lg);transform-origin:var(--transform-origin);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.ksel-popup[data-ending-style],.ksel-popup[data-starting-style]{opacity:0;transform:scale(.97)}.ksel-list{display:flex;flex-direction:column;gap:1px}.ksel-item{display:grid;grid-template-columns:16px 1fr;align-items:center;gap:var(--sp-2);padding:7px 8px;border-radius:var(--r-xs);color:var(--ink-1);font-size:var(--fs-sm);line-height:var(--lh-sm);cursor:pointer;user-select:none;outline:none}.ksel-item[data-highlighted]{background:var(--accent-soft);color:var(--accent)}.ksel-item[data-disabled]{color:var(--ink-3);cursor:not-allowed}.ksel-item-check{grid-column:1}.ksel-item-text{grid-column:2}.ksel-item-check{display:inline-flex;justify-content:center;color:var(--accent)}.ksel-item-text{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);min-width:0}.ksel-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ksel-item[data-selected] .ksel-item-label{font-weight:var(--fw-semibold)}.ksel-item-hint{flex-shrink:0;color:var(--ink-3);font-size:var(--fs-xs)}.ksel-item[data-highlighted] .ksel-item-hint{color:var(--accent)}.kfile{display:flex;flex-direction:column;gap:4px}.kfile-label{color:var(--ink-2);font-size:var(--fs-xs);line-height:var(--lh-xs)}.kfile-zone{position:relative;display:flex;align-items:center;gap:var(--sp-3);padding:10px 12px;border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--surface);font-size:var(--fs-sm);transition:border-color var(--dur-base) var(--ease-standard),background var(--dur-base) var(--ease-standard)}.kfile-zone:hover:not(.disabled){border-color:var(--ink-3)}.kfile-zone.dragging{border-color:var(--accent);border-style:solid;background:var(--accent-soft)}.kfile-zone.filled{border-style:solid;border-color:var(--border-strong);background:var(--surface-2)}.kfile-zone.disabled{background:var(--surface-2);color:var(--ink-3)}.kfile-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.kfile-zone:has(.kfile-input:focus-visible){border-color:var(--focus-ring);box-shadow:var(--sh-focus)}.kfile-glyph{flex-shrink:0;color:var(--ink-3)}.kfile-zone.dragging .kfile-glyph,.kfile-zone.filled .kfile-glyph{color:var(--accent)}.kfile-meta{display:flex;align-items:baseline;gap:var(--sp-2);min-width:0;flex-wrap:wrap}.kfile-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--fw-medium);color:var(--ink-1)}.kfile-hint,.kfile-size{color:var(--ink-3);font-size:var(--fs-xs)}.kfile-cta{color:var(--accent);font-weight:var(--fw-medium);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.kfile-zone.disabled .kfile-cta{color:var(--ink-3);cursor:not-allowed}.kfile-reject{margin:0;color:var(--danger);font-size:var(--fs-xs);line-height:var(--lh-xs)}.kfile-clear{margin-left:auto;flex-shrink:0;padding:2px 8px;border:1px solid var(--border-strong);border-radius:var(--r-xs);background:var(--surface);color:var(--ink-2);font-family:inherit;font-size:var(--fs-xs);cursor:pointer}.kfile-clear:hover:not(:disabled){border-color:var(--danger-border);color:var(--danger)}.kfile-clear:focus-visible{outline:none;border-color:var(--focus-ring);box-shadow:var(--sh-focus)}.kfile-staged{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.kfile-staged>li{display:flex;align-items:center;gap:var(--sp-2);min-width:0;font-size:var(--fs-xs);color:var(--ink-2)}.kfile-staged-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-1)}.kfile-staged-size{flex-shrink:0;color:var(--ink-3);font-variant-numeric:tabular-nums}.kfile-thumbs{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}.kfile-thumbs>li{display:flex;flex-direction:column;gap:4px;width:120px;min-width:0;font-size:var(--fs-xs);color:var(--ink-2)}.kfile-thumb-blank,.kfile-thumbs img{width:120px;height:120px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:var(--surface-2)}.kfile-thumbs img{object-fit:contain;background:var(--surface-2)}.kfile-thumb-blank{display:flex;align-items:center;justify-content:center;color:var(--ink-3)}.kfile-thumbs .kfile-staged-name{flex:0 0 auto}.kfile-thumbs .kfile-clear{margin-left:0}@media (max-width:640px){.ksel-trigger{min-width:0}.kfile-clear{padding:10px 12px}}