.railHost { min-height: 0; height: 100%; width: 220px; flex-shrink: 0; position: relative; } .peekBtn, .backdrop, .rail { pointer-events: auto; } .peekBtn { position: absolute; top: 8px; left: 8px; z-index: 24; min-height: 44px; padding: 0 12px; border-radius: 8px; border: 1px solid var(--border-subtle); background: var(--surface-glass, var(--surface-card)); color: var(--text); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; } .backdrop { position: absolute; inset: 0; z-index: 22; border: 0; padding: 0; margin: 0; background: rgba(7, 16, 18, 0.55); cursor: pointer; } .rail { display: flex; flex-direction: column; min-height: 0; height: 100%; width: 220px; flex-shrink: 0; border-right: 1px solid var(--surface-glass-border, var(--border-subtle)); background: color-mix(in srgb, var(--surface-card) 82%, transparent); } .railOverlay { position: absolute; top: 0; left: 0; bottom: 0; z-index: 23; box-shadow: var(--shadow-md, 0 12px 32px rgba(0, 0, 0, 0.28)); } .head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 6px 4px 10px; flex-shrink: 0; } .headLabel { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 650; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); } .closeBtn, .newBtn { font: inherit; cursor: pointer; } .closeBtn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: -8px -4px -8px 0; padding: 0; border: 0; border-radius: 8px; background: transparent; color: var(--muted); } .newBtn { margin: 6px 10px 8px; min-height: 44px; border-radius: 8px; border: 1px solid var(--border-subtle); background: var(--surface-muted); color: var(--text); font-size: 13px; font-weight: 600; flex-shrink: 0; } .headLabel::before { content: ""; flex: none; width: 6px; height: 6px; transform: rotate(45deg); border-radius: 1px; background: var(--studio-accent-warm); box-shadow: 0 0 8px rgba(226, 179, 106, 0.6); } .newBtn:hover, .closeBtn:hover, .peekBtn:hover { background: var(--surface-raised); color: var(--text); } .newBtn:hover { border-color: var(--color-accent-warm-border); } .list { display: flex; flex-direction: column; gap: 2px; min-height: 0; overflow-y: auto; padding: 0 6px 10px; } .empty { margin: 8px 6px; font-size: 12px; color: var(--muted); line-height: 1.4; } .itemRow { display: flex; align-items: stretch; gap: 2px; border-radius: 8px; } .itemRow:hover, .itemRow:focus-within { background: var(--surface-muted); } .item { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; flex: 1; min-width: 0; min-height: 44px; padding: 8px 8px; border: 0; border-radius: 8px; background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer; } .item:hover { background: transparent; } .itemCurrent { background: var(--surface-muted); box-shadow: inset 3px 0 0 var(--studio-accent-warm); } .itemActions { flex-shrink: 0; align-self: center; display: flex; align-items: center; gap: 0; margin-right: 2px; opacity: 0; } .itemRow:hover .itemActions, .itemRow:focus-within .itemActions { opacity: 1; } .renameBtn, .deleteBtn { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: var(--muted); font: inherit; font-size: 11px; font-weight: 650; cursor: pointer; } .renameBtn:hover, .deleteBtn:hover, .deleteBtnConfirm { color: var(--text); background: var(--surface-raised); } .deleteBtnConfirm { width: auto; padding: 0 8px; } .renameForm { flex: 1; min-width: 0; padding: 6px 6px; } .renameInput { width: 100%; box-sizing: border-box; min-height: 32px; padding: 4px 8px; border-radius: 6px; border: 1px solid var(--link, var(--border-subtle)); background: var(--surface-input, var(--surface-card)); color: var(--text); font: inherit; font-size: 13px; font-weight: 600; outline: none; } .itemTitle { font-size: 13px; font-weight: 600; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; } .itemMeta { font-size: 11px; color: var(--muted); line-height: 1.35; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; } /* Overlay drawer — keep in sync with OVERLAY_MQ in AgentSessionRail.tsx */ @media (max-width: 1023px) { .railHostOverlay { width: 0; min-width: 0; height: 0; overflow: visible; } .peekBtn { position: fixed; top: calc(44px + 8px); left: 8px; z-index: 30; } .backdrop { position: fixed; inset: 0; z-index: 31; } .railOverlay { position: fixed; top: 44px; left: 0; bottom: 0; z-index: 32; width: min(280px, calc(100vw - 48px)); background: var(--surface-card); transform: translateX(-110%); visibility: hidden; pointer-events: none; transition: transform var(--motion-sm, 180ms) var(--ease-out, ease), visibility var(--motion-sm, 180ms) var(--ease-out, ease); } .railOverlay.railOpen { transform: translateX(0); visibility: visible; pointer-events: auto; } .itemActions { opacity: 1; } } @media (max-width: 1023px) and (prefers-reduced-motion: reduce) { .railOverlay, .railOverlay.railOpen { transition: none; } }