/* MwInputComposer — visually merges children into a single toolbar strip.
   Prefix: mw-ic-*
   Requires: MudBlazor CSS variables for theme-aware colors. */

/* NOTE: Root container */
.mw-ic-root {
    display: inline-flex;
    align-items: stretch;
    border-radius: var(--mud-default-borderradius);
}

.mw-ic-root.mw-ic-full-width {
    display: flex;
    width: 100%;
}

/* NOTE: Item wrapper */
.mw-ic-item {
    position: relative;
    display: flex;
    align-items: stretch;
}

.mw-ic-item.mw-ic-grow {
    flex: 1;
    min-width: 0;
}

/* NOTE: Border collapse — non-first items overlap left border by 1px */
.mw-ic-root > .mw-ic-item:not(:first-child) {
    margin-left: -1px;
}

/* NOTE: Z-index on focus/hover so active border isn't hidden behind adjacent item */
.mw-ic-root > .mw-ic-item:focus-within,
.mw-ic-root > .mw-ic-item:hover {
    z-index: 1;
}

/* NOTE: Border-radius stripping — MudTextField (Outlined) */

/* The outlined input container */
.mw-ic-root > .mw-ic-item:not(:last-child) .mud-input.mud-input-outlined,
.mw-ic-root > .mw-ic-item:not(:last-child) .mud-input-outlined-border {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.mw-ic-root > .mw-ic-item:not(:first-child) .mud-input.mud-input-outlined,
.mw-ic-root > .mw-ic-item:not(:first-child) .mud-input-outlined-border {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

/* NOTE: Border-radius stripping — MudButton / MudIconButton */
.mw-ic-root > .mw-ic-item:not(:last-child) .mud-button-root {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.mw-ic-root > .mw-ic-item:not(:first-child) .mud-button-root {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

/* NOTE: Border-radius stripping — MudMenu activator wrapper */
.mw-ic-root > .mw-ic-item:not(:last-child) .mud-menu > .mud-menu-activator .mud-button-root {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.mw-ic-root > .mw-ic-item:not(:first-child) .mud-menu > .mud-menu-activator .mud-button-root {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

/* NOTE: Make MudTextField fill its item container height */
.mw-ic-item > .mud-input-control {
    flex: 1;
}

/* Make grow items' text fields take full width */
.mw-ic-item.mw-ic-grow > .mud-input-control {
    width: 100%;
}

/* NOTE: Make buttons fill item height to align with text field */
.mw-ic-item > .mud-button-root,
.mw-ic-item > .mud-menu {
    align-self: stretch;
}

.mw-ic-item > .mud-menu {
    display: flex;
}

.mw-ic-item > .mud-menu > .mud-menu-activator {
    display: flex;
    flex: 1;
}

.mw-ic-item > .mud-menu > .mud-menu-activator > .mud-button-root {
    flex: 1;
}

/* NOTE: Outlined button border color — match MudTextField's outlined border for visual consistency */
.mw-ic-root > .mw-ic-item .mud-button-outlined {
    border-color: var(--mud-palette-lines-inputs);
}

/* NOTE: Border-radius stripping — MudSelect (Outlined) */
.mw-ic-root > .mw-ic-item:not(:last-child) .mud-select .mud-input.mud-input-outlined,
.mw-ic-root > .mw-ic-item:not(:last-child) .mud-select .mud-input-outlined-border {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.mw-ic-root > .mw-ic-item:not(:first-child) .mud-select .mud-input.mud-input-outlined,
.mw-ic-root > .mw-ic-item:not(:first-child) .mud-select .mud-input-outlined-border {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

/* NOTE: Border-radius stripping — MudNumericField (Outlined) */
.mw-ic-root > .mw-ic-item:not(:last-child) .mud-input-control .mud-input.mud-input-outlined,
.mw-ic-root > .mw-ic-item:not(:last-child) .mud-input-control .mud-input-outlined-border {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.mw-ic-root > .mw-ic-item:not(:first-child) .mud-input-control .mud-input.mud-input-outlined,
.mw-ic-root > .mw-ic-item:not(:first-child) .mud-input-control .mud-input-outlined-border {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

/* NOTE: Border-radius stripping — MudTextField Filled variant */
.mw-ic-root > .mw-ic-item:not(:last-child) .mud-input.mud-input-filled {
    border-top-right-radius: 0;
}

.mw-ic-root > .mw-ic-item:not(:first-child) .mud-input.mud-input-filled {
    border-top-left-radius: 0;
}

/* NOTE: Size variants — fixed height on root, derived from MudButton's exact CSS.
   MudButton outlined height = 2*(padding + border) + font-size * line-height.
   Values taken from MudBlazor.min.css:
     Small:  padding 3px, border 1px, font 0.8125rem, line-height 1.75
     Medium: padding 6px, border 1px, font 0.875rem,  line-height 1.75
     Large:  padding 7px, border 1px, font 0.9375rem, line-height 1.75
   Height formula: calc(2 * (<padding> + 1px) + <font-size> * 1.75) */

.mw-ic-root.mw-ic-size-small {
    height: calc(2 * (3px + 1px) + 0.8125rem * 1.75);
}

.mw-ic-root.mw-ic-size-medium {
    height: calc(2 * (6px + 1px) + 0.875rem * 1.75);
}

.mw-ic-root.mw-ic-size-large {
    height: calc(2 * (7px + 1px) + 0.9375rem * 1.75);
}

/* NOTE: Force text field to fill container height when size is set */
.mw-ic-root.mw-ic-size-small .mud-input-control,
.mw-ic-root.mw-ic-size-medium .mud-input-control,
.mw-ic-root.mw-ic-size-large .mud-input-control {
    height: 100%;
}

.mw-ic-root.mw-ic-size-small .mud-input-control-input-container,
.mw-ic-root.mw-ic-size-medium .mud-input-control-input-container,
.mw-ic-root.mw-ic-size-large .mud-input-control-input-container {
    height: 100%;
}

.mw-ic-root.mw-ic-size-small .mud-input.mud-input-outlined,
.mw-ic-root.mw-ic-size-medium .mud-input.mud-input-outlined,
.mw-ic-root.mw-ic-size-large .mud-input.mud-input-outlined {
    height: 100%;
}

/* The outlined border element (fieldset) uses position:absolute + inset:0,
   so it auto-fills whatever height its parent has — no override needed. */

/* Scale input font and icons to match button sizes */
.mw-ic-root.mw-ic-size-small .mud-input-slot {
    font-size: 0.8125rem;
}

.mw-ic-root.mw-ic-size-small .mud-input-adornment-start .mud-icon-root,
.mw-ic-root.mw-ic-size-small .mud-input-adornment-end .mud-icon-root {
    font-size: 18px;
}

.mw-ic-root.mw-ic-size-large .mud-input-slot {
    font-size: 0.9375rem;
}

.mw-ic-root.mw-ic-size-large .mud-input-adornment-start .mud-icon-root,
.mw-ic-root.mw-ic-size-large .mud-input-adornment-end .mud-icon-root {
    font-size: 22px;
}

/* NOTE: MudSelect fill its container */
.mw-ic-item > .mud-select {
    flex: 1;
}

.mw-ic-item.mw-ic-grow > .mud-select {
    width: 100%;
}
