Files
orderPRO/resources/scss/modules/_order-preview-modal.scss
2026-04-12 01:35:19 +02:00

242 lines
3.8 KiB
SCSS

.order-preview-overlay {
position: fixed;
inset: 0;
z-index: 1000;
background: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
}
.order-preview-modal {
background: var(--c-surface);
border: 1px solid var(--c-border);
border-radius: 10px;
box-shadow: 0 16px 48px rgba(0, 0, 0, 0.18);
width: 100%;
max-width: 960px;
max-height: 90vh;
display: flex;
flex-direction: column;
&__header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 20px;
border-bottom: 1px solid var(--c-border);
}
&__title {
font-size: 18px;
font-weight: 600;
margin: 0;
}
&__close {
background: none;
border: none;
font-size: 22px;
cursor: pointer;
color: var(--c-muted);
padding: 0 4px;
line-height: 1;
&:hover {
color: var(--c-text);
}
}
&__body {
padding: 20px 24px;
overflow-y: auto;
flex: 1;
}
&__footer {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 8px;
padding: 12px 20px;
border-top: 1px solid var(--c-border);
}
}
.order-preview-loading {
text-align: center;
padding: 32px;
color: var(--c-muted);
}
.order-preview-error {
text-align: center;
padding: 32px;
color: var(--c-danger, #e53e3e);
}
.order-preview-section {
margin-bottom: 14px;
&__title {
font-size: 13px;
font-weight: 600;
text-transform: uppercase;
color: var(--c-muted);
margin-bottom: 8px;
letter-spacing: 0.04em;
}
}
.order-preview-kv {
display: grid;
grid-template-columns: auto 1fr;
gap: 4px 14px;
font-size: 14px;
dt {
color: var(--c-muted);
white-space: nowrap;
}
dd {
margin: 0;
display: flex;
align-items: center;
gap: 4px;
}
}
.order-preview-items {
width: 100%;
font-size: 14px;
border-collapse: collapse;
th,
td {
padding: 6px 8px;
text-align: left;
vertical-align: top;
}
th {
font-weight: 600;
font-size: 12px;
text-transform: uppercase;
color: var(--c-muted);
}
tbody tr + tr {
border-top: 1px solid var(--c-border);
}
}
.order-preview-item-cell {
display: flex;
align-items: flex-start;
gap: 8px;
}
.order-preview-item-thumb {
width: 42px;
height: 42px;
object-fit: cover;
border-radius: 4px;
border: 1px solid var(--c-border);
flex-shrink: 0;
&--empty {
background: var(--c-bg, #f5f5f5);
}
}
.order-preview-item-info {
min-width: 0;
}
.order-preview-item-name {
font-size: 14px;
line-height: 1.3;
word-break: break-word;
}
.order-preview-personalization {
margin-top: 4px;
font-size: 12px;
color: var(--c-muted);
line-height: 1.4;
&__line {
white-space: pre-wrap;
word-break: break-word;
}
}
.order-preview-notes {
font-size: 14px;
&__item {
padding: 6px 0;
& + & {
border-top: 1px solid var(--c-border);
}
}
&__type {
font-size: 11px;
color: var(--c-muted);
margin-bottom: 2px;
}
&__text {
white-space: pre-wrap;
word-break: break-word;
}
}
.copy-field__btn {
background: none;
border: none;
cursor: pointer;
font-size: 13px;
color: var(--c-muted);
padding: 0 2px;
line-height: 1;
opacity: 0.6;
transition: opacity 0.15s;
display: inline-flex;
align-items: center;
gap: 3px;
&:hover {
opacity: 1;
color: var(--c-primary, #4f6ef7);
}
&.is-copied {
color: #22c55e;
opacity: 1;
}
}
.btn-icon.js-order-preview-btn {
background: none;
border: none;
cursor: pointer;
font-size: 14px;
color: var(--c-muted);
padding: 2px 4px;
line-height: 1;
opacity: 0.5;
transition: opacity 0.15s;
vertical-align: middle;
margin-right: 4px;
&:hover {
opacity: 1;
color: var(--c-primary, #4f6ef7);
}
}