import { style } from '@vanilla-extract/css';
import { color, config, toRem } from 'folds';
import { VOJO_HORSESHOE_RADIUS_PX } from '../../styles/horseshoe';

// Right-side profile pane sized like the members drawer family —
// wide enough for the identity card + chips without dominating the
// chat. Clamp keeps it readable on narrow desktops and prevents
// runaway width on ultra-wide displays.
//
// Left edge is rounded (TL + BL) to mirror the chat column's TR / BR
// carves across the 12px horseshoe void gap rendered by Room.tsx —
// same design language as the page-nav <-> chat split. `overflow:
// hidden` keeps the rounded corners clean against the header /
// scroll content; the void colour beneath is painted by the parent
// flex row, not by the panel itself.
export const panel = style({
  flexShrink: 0,
  width: `clamp(${toRem(300)}, 25%, ${toRem(380)})`,
  display: 'flex',
  flexDirection: 'column',
  backgroundColor: color.Surface.Container,
  minHeight: 0,
  overflow: 'hidden',
  borderTopLeftRadius: toRem(VOJO_HORSESHOE_RADIUS_PX),
  borderBottomLeftRadius: toRem(VOJO_HORSESHOE_RADIUS_PX),
});

// Match the chat header's left gutter (RoomViewHeaderDm uses S200
// override) so the title sits at the same x-offset as the chat
// header's avatar — keeps the two rows visually balanced.
export const header = style({
  paddingLeft: config.space.S300,
});

// Functional overflow without a visible scrollbar. The pane's
// content (hero + info rows + actions) almost always fits, but
// moderation alerts can push past — we keep scrolling working for
// that case while hiding the scrollbar chrome that the user asked
// us to drop.
export const scrollWrap = style({
  flex: 1,
  minHeight: 0,
  overflow: 'auto',
  scrollbarWidth: 'none',
  selectors: {
    '&::-webkit-scrollbar': {
      display: 'none',
    },
  },
});

