#page-calc-builder{
padding-bottom:120px;
}
.config-builder-shell{
display:flex;
flex-direction:column;
gap:18px;
}
.config-builder-header{
display:flex;
justify-content:space-between;
align-items:flex-start;
gap:16px;
flex-wrap:wrap;
}
.config-builder-layout{
display:grid;
grid-template-columns:320px minmax(0,1fr);
gap:18px;
align-items:start;
}
.config-builder-editor-grid{
display:grid;
grid-template-columns:minmax(0,1.3fr) minmax(320px,.9fr);
gap:18px;
}
.config-builder-panel{
background:#fff;
border:1px solid #e5e7eb;
border-radius:18px;
padding:18px;
box-shadow:0 8px 30px rgba(15,23,42,.05);
}
.config-builder-panel-head{
display:flex;
justify-content:space-between;
align-items:center;
gap:12px;
margin-bottom:14px;
flex-wrap:wrap;
}
.config-builder-panel-head h3{
margin:0;
font-size:18px;
color:#16303a;
}
.config-builder-actions{
display:flex;
gap:10px;
flex-wrap:wrap;
}
.config-builder-btn{
border:1px solid #cfe0e7;
background:#fff;
color:#024550;
border-radius:10px;
padding:10px 14px;
font-size:13px;
font-weight:700;
cursor:pointer;
font-family:inherit;
}
.config-builder-btn.is-primary{
background:#024550;
color:#fff;
border-color:#024550;
}
.config-builder-input,
.config-builder-textarea{
width:100%;
border:1.5px solid #d9e3ea;
border-radius:10px;
padding:10px 12px;
font-size:13px;
font-family:inherit;
background:#fff;
box-sizing:border-box;
}
.config-builder-textarea{
min-height:86px;
resize:vertical;
}
.config-builder-grid{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:14px;
}
.config-builder-grid label,
.config-block-fields label{
display:flex;
flex-direction:column;
gap:6px;
font-size:12px;
font-weight:700;
color:#526277;
}
.config-builder-list{
display:flex;
flex-direction:column;
gap:10px;
max-height:calc(100vh - 320px);
overflow:auto;
padding-right:4px;
margin-top:12px;
}
.config-builder-item{
border:1px solid #e5e7eb;
border-radius:14px;
padding:12px 14px;
cursor:pointer;
background:#f8fafc;
}
.config-builder-item.is-active{
border-color:#024550;
background:#edf7f7;
}
.config-builder-item strong{display:block;color:#102a43;font-size:14px}
.config-builder-item span{display:block;color:#64748b;font-size:12px;margin-top:4px}
.config-builder-status{
margin-top:12px;
min-height:20px;
font-size:13px;
color:#64748b;
}
.config-builder-status.is-success{color:#15803d}
.config-builder-status.is-error{color:#b91c1c}
.config-builder-help{
margin:0 0 14px;
font-size:13px;
color:#64748b;
line-height:1.5;
}
.is-hidden{
display:none !important;
}
.config-layout-sections{
display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:14px;
margin-top:16px;
}
.config-layout-region{
border:1px solid #e5e7eb;
border-radius:16px;
padding:14px;
background:#fbfdff;
}
.config-layout-head{
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:10px;
margin-bottom:12px;
flex-wrap:wrap;
}
.config-layout-head h4{
margin:0;
font-size:14px;
color:#16303a;
}
.config-layout-add{
display:flex;
gap:8px;
flex-wrap:wrap;
width:100%;
}
.config-layout-add .config-builder-input{
flex:1;
min-width:170px;
}
.config-layout-list{
display:flex;
flex-wrap:wrap;
gap:8px;
min-height:36px;
}
.config-layout-chip{
display:inline-flex;
align-items:center;
gap:8px;
padding:8px 10px;
border-radius:999px;
background:#edf7f7;
color:#024550;
font-size:12px;
font-weight:700;
}
.config-layout-chip button{
border:none;
background:none;
color:#94a3b8;
cursor:pointer;
font-size:14px;
line-height:1;
padding:0;
}
.config-builder-blocks{
display:flex;
flex-direction:column;
gap:16px;
}
.config-block-card{
border:1px solid #e5e7eb;
border-radius:16px;
padding:16px;
background:#fcfdfd;
}
.config-block-head{
display:flex;
justify-content:space-between;
gap:12px;
align-items:center;
margin-bottom:12px;
flex-wrap:wrap;
}
.config-block-title{
display:flex;
gap:10px;
align-items:center;
color:#102a43;
font-weight:800;
}
.config-block-index{
width:28px;
height:28px;
border-radius:999px;
background:#024550;
color:#fff;
display:inline-flex;
align-items:center;
justify-content:center;
font-size:12px;
}
.config-block-actions{
display:flex;
gap:8px;
flex-wrap:wrap;
}
.config-block-fields{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:12px;
}
.config-block-fields .is-wide{
grid-column:1 / -1;
}
.config-builder-preview{
background:#f8fafc;
border:1px dashed #d5e3ea;
border-radius:16px;
padding:16px;
min-height:240px;
}
.config-builder-preview .calc-block + .calc-block,
.config-builder-preview .calc-toggle-row + .calc-block,
.config-builder-preview .calc-block + .calc-toggle-row{
margin-top:14px;
}
.config-builder-empty{
color:#94a3b8;
text-align:center;
padding:24px 12px;
font-size:14px;
}
.config-preview-layout{
display:grid;
gap:14px;
}
.config-preview-head,
.config-preview-content,
.config-preview-sidebar{
border:1px solid #d9e3ea;
border-radius:14px;
background:#fff;
padding:14px;
}
.config-preview-columns{
display:grid;
grid-template-columns:minmax(0,1fr) 280px;
gap:14px;
}
.config-preview-columns.is-left{
grid-template-columns:280px minmax(0,1fr);
}
.config-preview-title{
display:flex;
justify-content:space-between;
gap:10px;
margin-bottom:10px;
font-size:12px;
font-weight:800;
color:#526277;
text-transform:uppercase;
}
.config-preview-module-list{
display:flex;
flex-wrap:wrap;
gap:8px;
margin-bottom:12px;
}
.config-preview-module{
display:inline-flex;
align-items:center;
padding:7px 10px;
border-radius:999px;
background:#eff6ff;
color:#1d4ed8;
font-size:12px;
font-weight:700;
}
@media (max-width: 1280px){
.config-builder-layout,
.config-builder-editor-grid{
grid-template-columns:1fr;
}
.config-builder-list{max-height:none}
.config-layout-sections{
grid-template-columns:1fr;
}
}
@media (max-width: 768px){
.config-builder-grid,
.config-block-fields{
grid-template-columns:1fr;
}
.config-preview-columns,
.config-preview-columns.is-left{
grid-template-columns:1fr;
}
}
.config-builder-item{display:flex;flex-direction:column;gap:10px}
.config-builder-item-main{border:none;background:transparent;text-align:left;padding:0;cursor:pointer}
.config-builder-item-preview{align-self:flex-start;border:1px solid #cfe0e7;background:#fff;color:#024550;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}