/* ---------------------------------------------------------------------------
Monster Builder:Builder-specific Styles
Uses CSS variables and BEM conventions from base.css
--------------------------------------------------------------------------- */
#panel-identity{
overflow-y:hidden;
}

#panel-identity .panel__body{
overflow-y:auto;
margin-top:7px;
border-top:1px solid var(--color-border);
}

.builder-actions{
display:flex;
gap:8px;
}

.builder-actions .btn{
flex:1;
text-align:center;
}

.builder-identity{
display:flex;
flex-direction:column;
gap:4px;
}

.builder-identity__section{
padding-bottom:10px;
border-bottom:1px solid var(--color-border);
width:96%;
}

.builder-identity__section:last-child{
border-bottom:none;
padding-bottom:0;
}

.builder-identity__row{
display:flex;
gap:8px;
}

.builder-identity__half{
flex:1;
min-width:0;
}

.builder-identity__third{
flex:1;
min-width:0;
}

.builder-identity__input,
.builder-identity__select{
display:block;
width:100%;
padding:4px 6px;
font-family:var(--font-body);
font-size:0.78rem;
color:var(--color-text);
background:var(--color-input-bg);
border:1px solid var(--color-border);
border-radius:var(--radius);
}

.builder-identity__select{
cursor:pointer;
}

.builder-listbox{
display:block;
width:100%;
max-height:106px;
overflow-y:auto;
border:1px solid var(--color-border);
border-radius:var(--radius);
background:var(--color-input-bg);
font-family:var(--font-body);
font-size:0.78rem;
}

.builder-listbox:focus{
outline:none;
}

.builder-listbox__option{
padding:3px 6px;
cursor:pointer;
color:var(--color-text);
transition:background 0.1s;
user-select:none;
}

.builder-listbox__option:hover{
background:var(--color-ability-bg);
}

.builder-listbox__option.is-selected{
background:var(--color-btn-bg);
color:var(--color-on-primary);
}

.builder-listbox__option.is-selected:hover{
background:var(--color-btn-bg);
filter:brightness(1.15);
}

.builder-identity__input:focus,
.builder-identity__select:focus{
outline:none;
border-color:var(--color-secondary);
box-shadow:0 0 0 2px rgba(190,91,32,0.15);
}

.builder-identity__abilities{
display:grid;
grid-template-columns:repeat(6,1fr);
gap:6px;
margin-top:4px;
}

.builder-identity__ability{
display:flex;
flex-direction:column;
align-items:center;
gap:2px;
}

.builder-identity__ability label{
font-size:0.65rem;
font-weight:700;
color:var(--color-primary);
text-transform:uppercase;
letter-spacing:0.04em;
}

.builder-identity__ability input{
width:100%;
padding:4px 2px;
font-family:var(--font-mono);
font-size:0.85rem;
text-align:left;
border:1px solid var(--color-border);
border-radius:var(--radius);
background:var(--color-input-bg);
color:var(--color-text);
}

.builder-identity__ability input:focus{
outline:none;
border-color:var(--color-secondary);
box-shadow:0 0 0 2px rgba(190,91,32,0.15);
}

.builder-identity__saves{
display:flex;
flex-wrap:wrap;
gap:6px 12px;
margin-top:4px;
}

.builder-identity__saves label{
display:flex;
align-items:center;
gap:4px;
font-size:0.78rem;
cursor:pointer;
}

.builder-identity__saves input[type="checkbox"]{
accent-color:var(--color-primary);
width:14px;
height:14px;
}

.builder-identity__skills{
display:flex;
flex-wrap:wrap;
gap:4px 10px;
margin-top:4px;
max-height:160px;
overflow-y:auto;
}

.builder-identity__skills label{
display:flex;
align-items:center;
gap:4px;
font-size:0.75rem;
cursor:pointer;
white-space:nowrap;
}

.builder-identity__skills input[type="checkbox"]{
accent-color:var(--color-primary);
width:13px;
height:13px;
}

.builder-identity__speeds{
display:flex;
flex-wrap:wrap;
gap:6px 10px;
margin-top:4px;
}

.builder-identity__speeds label{
display:flex;
align-items:center;
gap:4px;
font-size:0.78rem;
color:var(--color-text);
}

.builder-identity__speeds input{
width:52px;
padding:3px 4px;
font-family:var(--font-mono);
font-size:0.8rem;
text-align:left;
border:1px solid var(--color-border);
border-radius:var(--radius);
background:var(--color-input-bg);
color:var(--color-text);
}

.builder-identity__speeds input:focus{
outline:none;
border-color:var(--color-secondary);
}

.builder-identity__role-desc{
font-size:0.75rem;
color:var(--color-muted);
line-height:1.4;
margin-top:2px;
font-style:italic;
}

.builder-abilities{
display:flex;
flex-direction:column;
gap:12px;
}

.builder-feature{
border:1px solid var(--color-border);
border-radius:var(--radius);
background:var(--color-card);
transition:border-color 0.15s,box-shadow 0.15s;
}

.builder-feature:hover{
border-color:var(--color-muted);
}

.builder-feature__header{
display:flex;
align-items:center;
gap:8px;
padding:8px 10px;
cursor:pointer;
user-select:none;
transition:background 0.1s;
}

.builder-feature__header:hover{
background:rgba(0,0,0,0.025);
}

.builder-feature__name{
font-size:0.781rem;
font-weight:600;
color:var(--color-text);
flex-shrink:0;
}

.builder-feature__desc{
font-size:0.75rem;
color:var(--color-muted);
flex:1;
min-width:0;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}

.builder-feature__impact{
font-size:0.65rem;
font-weight:600;
color:var(--color-secondary);
white-space:nowrap;
flex-shrink:0;
padding:1px 6px;
border:1px solid var(--color-secondary);
border-radius:3px;
opacity:0.8;
}

.modify-feature-row.is-added label{
padding-left:8px;
}

.builder-feature__template{
font-size:0.78rem;
color:var(--color-text);
line-height:1.5;
margin-bottom:8px;
padding:6px 8px;
background:var(--color-input-bg);
border-radius:var(--radius);
border:1px solid var(--color-border);
}

.builder-feature__config{
display:flex;
flex-wrap:wrap;
gap:6px 10px;
align-items:center;
font-size:0.78rem;
margin-bottom:8px;
}

.builder-feature__config label{
display:flex;
align-items:center;
gap:4px;
color:var(--color-muted);
white-space:nowrap;
}

.builder-feature__config input,
.builder-feature__config select{
padding:3px 6px;
font-family:var(--font-body);
font-size:0.78rem;
border:1px solid var(--color-border);
border-radius:var(--radius);
background:var(--color-card);
color:var(--color-text);
}

.builder-feature__config input:focus,
.builder-feature__config select:focus{
outline:none;
border-color:var(--color-secondary);
}

.builder-feature__add-btn{
display:inline-flex;
align-items:center;
justify-content:center;
padding:5px 14px;
font-family:var(--font-body);
font-size:0.78rem;
font-weight:600;
border-radius:var(--radius);
cursor:pointer;
border:1px solid var(--color-btn-bg);
background:var(--color-btn-bg);
color:var(--color-on-primary);
transition:background 0.15s,color 0.15s;
}

.builder-feature__add-btn:hover{
filter:brightness(1.15);
}

.modify-feature-row.is-added .builder-feature__add-btn{
background:var(--color-input-bg);
color:var(--color-muted);
border-color:var(--color-border);
}

.modify-feature-row.is-added .builder-feature__add-btn:hover{
border-color:#c44;
color:#c44;
}

.builder-custom-section{
display:flex;
align-items:center;
justify-content:space-between;
padding:6px 0;
border-bottom:1px solid var(--color-border);
margin-bottom:8px;
}

.builder-custom-section h3{
font-size:0.78rem;
font-weight:700;
color:var(--color-primary);
text-transform:uppercase;
letter-spacing:0.04em;
margin:0;
}

.builder-custom-section .btn{
padding:3px 10px;
font-size:0.72rem;
}

.builder-custom-ability{
border:1px solid var(--color-border);
border-radius:var(--radius);
padding:8px 10px;
margin-bottom:6px;
background:var(--color-card);
transition:border-color 0.15s,box-shadow 0.15s;
}

.builder-custom-ability:hover{
border-color:var(--color-muted);
box-shadow:0 1px 4px rgba(0,0,0,0.06);
}

.builder-custom-ability__name{
font-size:0.781rem;
font-weight:700;
color:var(--color-text);
margin-bottom:2px;
}

.builder-custom-ability__summary{
font-size:0.78rem;
color:var(--color-muted);
line-height:1.4;
}

.builder-custom-ability__actions{
display:flex;
gap:6px;
margin-top:6px;
}

.builder-custom-ability__actions .btn{
padding:3px 10px;
font-size:0.72rem;
}

.builder-ability-form{
border:1px solid var(--color-border);
border-radius:var(--radius);
padding:12px;
margin-bottom:10px;
background:var(--color-card);
}

.builder-ability-form__row{
display:flex;
align-items:center;
gap:8px;
margin-bottom:8px;
}

.builder-ability-form__row:last-child{
margin-bottom:0;
}

.builder-ability-form__row label{
font-size:0.78rem;
font-weight:600;
color:var(--color-primary);
min-width:70px;
flex-shrink:0;
}

.builder-ability-form__row input,
.builder-ability-form__row select,
.builder-ability-form__row textarea{
flex:1;
min-width:0;
padding:5px 8px;
font-family:var(--font-body);
font-size:0.781rem;
color:var(--color-text);
background:var(--color-input-bg);
border:1px solid var(--color-border);
border-radius:var(--radius);
}

.builder-ability-form__row textarea{
min-height:60px;
resize:vertical;
line-height:1.5;
}

.builder-ability-form__row input:focus,
.builder-ability-form__row select:focus,
.builder-ability-form__row textarea:focus{
outline:none;
border-color:var(--color-secondary);
box-shadow:0 0 0 2px rgba(190,91,32,0.15);
}

.builder-ability-form__preview{
padding:8px 10px;
margin-top:8px;
margin-bottom:8px;
font-family:var(--font-mono);
font-size:0.78rem;
line-height:1.5;
color:var(--color-text);
background:var(--color-stat-bg);
border:1px solid var(--color-border);
border-radius:var(--radius);
white-space:pre-wrap;
min-height:40px;
}

.builder-ability-form__toggle{
display:flex;
align-items:center;
gap:6px;
font-size:0.75rem;
color:var(--color-muted);
cursor:pointer;
margin-bottom:8px;
}

.builder-ability-form__toggle input[type="checkbox"]{
accent-color:var(--color-primary);
width:14px;
height:14px;
}

.builder-ability-form__actions{
display:flex;
gap:8px;
justify-content:flex-end;
}

.builder-ability-form__actions .btn{
padding:5px 14px;
font-size:0.78rem;
}

.builder-cr-display{
display:flex;
align-items:baseline;
gap:6px;
font-size:0.85rem;
font-weight:700;
color:var(--color-primary);
margin-left:auto;
white-space:nowrap;
}

.builder-cr-display__value{
font-size:1.1rem;
color:var(--color-secondary);
}

@media (max-width:900px){
.builder-identity__abilities{
grid-template-columns:repeat(3,1fr);
}

}

@media (max-width:600px){
.builder-identity__abilities{
grid-template-columns:repeat(3,1fr);
gap:8px;
}

.builder-identity__saves,
.builder-identity__skills{
gap:6px 8px;
}

.builder-feature__header{
flex-wrap:wrap;
}

.builder-feature__desc{
order:3;
flex-basis:100%;
white-space:normal;
}

.builder-ability-form__row{
flex-direction:column;
align-items:stretch;
}

.builder-ability-form__row label{
min-width:unset;
}

}

.builder-identity__ability-grid{
display:grid;
grid-template-columns:repeat(6,1fr);
gap:6px;
}

.builder-identity__ability-item{
display:flex;
flex-direction:column;
align-items:center;
gap:2px;
}

.builder-identity__ability-name{
font-size:0.72rem;
font-weight:700;
text-transform:uppercase;
color:var(--color-muted);
}

.builder-identity__ability-item input{
width:100%;
text-align:left;
padding:4px;
border:1px solid var(--color-border);
border-radius:var(--radius);
background:var(--color-input-bg);
color:var(--color-text);
font-size:0.85rem;
}

.builder-identity__speed-grid{
display:flex;
gap:6px;
}

.builder-identity__speed-item{
flex:1;
min-width:0;
display:flex;
flex-direction:column;
gap:2px;
}

.builder-identity__speed-name{
font-size:0.72rem;
font-weight:600;
color:var(--color-muted);
}

.builder-identity__speed-item input{
width:100%;
padding:4px 6px;
border:1px solid var(--color-border);
border-radius:var(--radius);
background:var(--color-input-bg);
color:var(--color-text);
font-size:0.781rem;
}

.builder-identity__checkbox-grid{
display:flex;
flex-wrap:wrap;
gap:4px 12px;
}

.builder-identity__checkbox{
display:flex;
align-items:center;
gap:4px;
font-size:0.78rem;
cursor:pointer;
}

.builder-identity__checkbox input[type="checkbox"]{
accent-color:var(--color-primary);
width:14px;
height:14px;
}

#builder-multiattack-row{
flex-wrap:wrap;
}

#builder-multiattack-row > input[type="checkbox"]{
accent-color:var(--color-primary);
width:14px;
height:14px;
flex-shrink:0;
cursor:pointer;
}

#builder-multiattack-row > .modify-feature-row__name{
cursor:pointer;
}

#builder-multiattack-row > .builder-feature__detail{
flex-basis:100%;
}

.builder-feature-checkbox{
accent-color:var(--color-primary);
width:14px;
height:14px;
flex-shrink:0;
cursor:pointer;
}

.builder-multiattack-row{
display:flex;
align-items:center;
gap:8px;
margin-bottom:4px;
}

.builder-multiattack-total{
display:flex;
align-items:center;
gap:8px;
margin-bottom:8px;
}

.builder-multiattack-total__label{
font-size:0.78rem;
font-weight:600;
}

.builder-modifier-heading{
font-size:0.72rem;
font-weight:600;
margin:10px 0 4px;
border-top:1px solid var(--color-border);
padding-top:6px;
text-transform:uppercase;
color:var(--color-muted);
letter-spacing:0.03em;
}

.builder-modifier-section{
margin-bottom:8px;
}

.builder-modifier-section__header{
display:flex;
align-items:center;
gap:6px;
margin-bottom:4px;
}

.builder-modifier-section__label{
font-size:0.75rem;
font-weight:600;
}

.builder-modifier-row{
display:flex;
align-items:center;
gap:4px;
margin-bottom:3px;
}

.builder-modifier-row__count-label{
font-size:0.75rem;
}

.builder-variant-label{
display:flex;
align-items:center;
gap:4px;
cursor:pointer;
font-size:0.78rem;
margin-bottom:4px;
}

.builder-option-row{
display:flex;
gap:8px;
}

.builder-option-column{
display:flex;
flex-direction:column;
gap:4px;
}

.builder-list-item{
display:flex;
gap:4px;
margin-bottom:4px;
}

.builder-list-item input{
flex:1;
}

.builder-scale-label{
display:flex;
align-items:center;
gap:3px;
font-size:0.75rem;
cursor:pointer;
margin-left:6px;
white-space:nowrap;
}

.builder-scale-label input[type="checkbox"]{
accent-color:var(--color-primary);
}

.builder-remove-btn,
.builder-remove-btn:hover,
.builder-remove-btn:active,
.builder-remove-btn:focus,
.builder-remove-btn.is-confirming{
margin-top:8px;
color:var(--color-on-primary) !important;
background:var(--color-btn-bg) !important;
}

.builder-feature__preview{
margin-top:4px;
padding:6px 8px;
background:var(--color-background);
border-radius:var(--radius);
font-size:0.78rem;
line-height:1.5;
color:var(--color-text);
font-family:var(--font-body);
}

.builder-multiattack-toggle{
display:flex;
align-items:center;
gap:4px;
font-size:0.78rem;
cursor:pointer;
}

.builder-multiattack-toggle input[type="checkbox"]{
accent-color:var(--color-primary);
}

.builder-multiattack-config{
padding:8px 12px;
border-bottom:1px solid var(--color-border);
}

.builder-cr-stepper{
display:flex;
position:relative;
}

.builder-cr-stepper__input{
padding-right:18px;
text-align:left;
}

.builder-cr-stepper__btn{
position:absolute;
right:1px;
width:16px;
height:50%;
padding:0;
border:none;
background:var(--color-input-bg);
color:var(--color-text);
font-size:7px;
cursor:pointer;
line-height:1;
display:flex;
align-items:center;
justify-content:center;
border-left:1px solid var(--color-border);
}

.builder-cr-stepper__btn:first-of-type{
bottom:1px;
border-radius:0 0 var(--radius) 0;
}

.builder-cr-stepper__btn:last-of-type{
top:1px;
border-radius:0 var(--radius) 0 0;
}

.builder-cr-stepper__btn:hover{
background:var(--color-hover,var(--bg-hover));
}

.builder-random-group{
display:flex;
align-items:center;
gap:0;
}

.builder-random-group .btn{
border-top-right-radius:0;
border-bottom-right-radius:0;
}

.builder-random-cr{
width:42px;
padding:4px 4px;
font-family:var(--font-body);
font-size:0.78rem;
color:var(--color-text);
background:var(--color-input-bg);
border:1px solid var(--color-border);
border-left:none;
border-radius:0 var(--radius) var(--radius) 0;
text-align:center;
height:100%;
box-sizing:border-box;
}

.builder-abilities-toolbar{
display:flex;
gap:8px;
padding:8px 12px;
border-bottom:1px solid var(--border);
align-items:center;
}

.builder-abilities-search{
flex:1;
padding:6px 10px;
border:1px solid var(--border);
border-radius:4px;
background:var(--bg-input);
color:var(--text);
font-size:13px;
}

.builder-abilities-search::placeholder{
color:var(--text-muted);
}

.builder-add-custom-btn{
padding:6px 12px;
border:1px solid var(--border);
border-radius:4px;
background:var(--bg-input);
color:var(--text);
font-size:13px;
cursor:pointer;
white-space:nowrap;
}

.builder-add-custom-btn:hover{
background:var(--bg-hover);
}

.builder-ability-custom .modify-feature-row__name{
font-style:italic;
}

