.wrap { display: inline-flex; align-items: center; gap: 2px; } /* ── chip ─────────────────────────────────── */ .chip { display: inline-flex; align-items: center; gap: 5px; font-family: 'JetBrains Mono', monospace; font-size: 11.5px; font-weight: 500; padding: 3px 9px; border-radius: 20px; cursor: pointer; border: 1px solid color-mix(in srgb, var(--git-mode-current) 20%, transparent); background: color-mix(in srgb, var(--git-mode-current) 10%, transparent); color: var(--git-mode-current); transition: border-color 0.2s, background 0.2s, color 0.2s; white-space: nowrap; line-height: 1.4; } .chip:hover, .chip:focus-visible { border-color: color-mix(in srgb, var(--git-mode-current) 45%, transparent); background: color-mix(in srgb, var(--git-mode-current) 16%, transparent); } .chipBranch { color: var(--git-mode-branch); background: color-mix(in srgb, var(--git-mode-branch) 10%, transparent); border-color: color-mix(in srgb, var(--git-mode-branch) 22%, transparent); } .chipBranch:hover, .chipBranch:focus-visible { border-color: color-mix(in srgb, var(--git-mode-branch) 45%, transparent); background: color-mix(in srgb, var(--git-mode-branch) 16%, transparent); } .chipWorktree { color: var(--git-mode-worktree); background: color-mix(in srgb, var(--git-mode-worktree) 10%, transparent); border-color: color-mix(in srgb, var(--git-mode-worktree) 22%, transparent); } .chipWorktree:hover, .chipWorktree:focus-visible { border-color: color-mix(in srgb, var(--git-mode-worktree) 45%, transparent); background: color-mix(in srgb, var(--git-mode-worktree) 16%, transparent); } .chipCompact { padding: 3px 7px; } .chipIcon { display: inline-flex; align-items: center; flex-shrink: 0; } .chipIcon svg { width: 14px; height: 14px; } .chipText { max-width: 160px; overflow: hidden; text-overflow: ellipsis; } .chevron { width: 9px; height: 9px; opacity: 0.5; transition: transform 0.25s cubic-bezier(0.34, 1.4, 0.44, 1); flex-shrink: 0; } .chevronOpen { transform: rotate(180deg); } .clearBtn { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border: none; background: var(--subtle-bg-strong); color: inherit; border-radius: 50%; font-size: 9px; cursor: pointer; transition: background 0.15s; flex-shrink: 0; line-height: 1; } .clearBtn:hover, .clearBtn:focus-visible { background: color-mix(in srgb, var(--foreground) 18%, transparent); } /* ── popover ──────────────────────────────── */ .popover { width: 310px; padding: 6px; gap: 2px; } .header { font-size: 10.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted-foreground); padding: 6px 10px 4px; } /* ── mode options ─────────────────────────── */ .option { display: flex; align-items: flex-start; gap: 10px; width: 100%; padding: 8px 10px; border: none; background: none; border-radius: 8px; cursor: pointer; text-align: left; position: relative; transition: background 0.15s; font-family: inherit; color: inherit; } .option:hover, .option:focus-visible { background: var(--subtle-bg); } .optionSelected { background: var(--subtle-bg); } .optionIcon { width: 30px; height: 30px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; border: 1px solid transparent; margin-top: 1px; } .optionIcon svg { width: 15px; height: 15px; } .iconCurrent { background: color-mix(in srgb, var(--git-mode-current) 10%, transparent); color: var(--git-mode-current); border-color: color-mix(in srgb, var(--git-mode-current) 18%, transparent); } .iconBranch { background: color-mix(in srgb, var(--git-mode-branch) 10%, transparent); color: var(--git-mode-branch); border-color: color-mix(in srgb, var(--git-mode-branch) 18%, transparent); } .iconWorktree { background: color-mix(in srgb, var(--git-mode-worktree) 10%, transparent); color: var(--git-mode-worktree); border-color: color-mix(in srgb, var(--git-mode-worktree) 18%, transparent); } .optionText { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; padding-right: 14px; } .optionName { font-size: 13px; font-weight: 600; } .optionDesc { font-size: 11px; color: var(--muted-foreground); line-height: 1.4; } .checkCurrent, .checkBranch, .checkWorktree { position: absolute; right: 10px; top: 10px; font-size: 12px; font-weight: 700; } .checkCurrent { color: var(--git-mode-current); } .checkBranch { color: var(--git-mode-branch); } .checkWorktree { color: var(--git-mode-worktree); } /* ── branch input ─────────────────────────── */ .branchBox { margin: 2px 4px 4px; background: var(--subtle-bg-strong); border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; } .branchRow { display: flex; align-items: center; gap: 8px; } .branchLabel { font-size: 11px; font-weight: 600; color: var(--muted-foreground); flex-shrink: 0; } .branchInputWrap { flex: 1; position: relative; } .branchInput { width: 100%; padding: 6px 26px 6px 9px; background: var(--subtle-bg); border: 1px solid var(--border); border-radius: 6px; color: var(--popover-foreground); font-family: 'JetBrains Mono', monospace; font-size: 12px; outline: none; transition: border-color 0.2s, box-shadow 0.2s; } .branchInput::placeholder { color: var(--muted-foreground); } .branchInput:focus { border-color: var(--git-mode-branch); box-shadow: 0 0 0 2px color-mix(in srgb, var(--git-mode-branch) 10%, transparent); } .branchInputInvalid { border-color: var(--error-color); box-shadow: 0 0 0 2px color-mix(in srgb, var(--error-color) 8%, transparent); } .branchInputValid { border-color: var(--git-mode-valid); box-shadow: 0 0 0 2px color-mix(in srgb, var(--git-mode-valid) 8%, transparent); } .branchStatus { position: absolute; right: 7px; top: 50%; transform: translateY(-50%); font-size: 12px; pointer-events: none; } .branchHint { margin-top: 6px; font-size: 10.5px; color: var(--muted-foreground); line-height: 1.45; } .branchHintError { color: var(--error-color); } /* ── footer ───────────────────────────────── */ .footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 10px 6px; border-top: 1px solid var(--border); margin-top: 4px; } .cmd { font-family: 'JetBrains Mono', monospace; font-size: 10.5px; color: var(--muted-foreground); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; min-width: 0; } .confirmBranch, .confirmWorktree { padding: 4px 12px; border: none; border-radius: 6px; font-family: inherit; font-size: 12px; font-weight: 600; cursor: pointer; transition: transform 0.15s, filter 0.15s; flex-shrink: 0; } .confirmBranch { background: var(--git-mode-branch); color: var(--background); } .confirmWorktree { background: var(--git-mode-worktree); color: var(--background); } .confirmBranch:hover, .confirmBranch:focus-visible, .confirmWorktree:hover, .confirmWorktree:focus-visible { transform: translateY(-1px); filter: brightness(1.1); } .confirmBranch:active, .confirmWorktree:active { transform: translateY(0); } .confirmBranch:disabled, .confirmWorktree:disabled { opacity: 0.35; cursor: not-allowed; transform: none; filter: none; }