loopable / web /src /customer-grid /ImportDialog.css
fsanyoto's picture
Deploy AIOS web (React glide grid + FastAPI slice)
dcdb685 verified
Raw
History Blame Contribute Delete
3.33 kB
/* customer-grid / ImportDialog.css — WAVE-29 T25 (owner item 6).
Tokens only (`--lp-*`): this file may not invent a colour, and `index.css` is another
session's fence, so the dialog's own styles live beside its component. */
.cg-import-scrim {
position: fixed;
inset: 0;
z-index: 60;
display: flex;
align-items: center;
justify-content: center;
background: rgba(32, 36, 51, 0.28);
padding: 24px;
}
.cg-import {
display: flex;
flex-direction: column;
width: min(560px, 100%);
max-height: min(80vh, 720px);
background: var(--lp-bg);
border: 1px solid var(--lp-line);
border-radius: var(--lp-r-lg);
box-shadow: 0 12px 32px rgba(32, 36, 51, 0.18);
overflow: hidden;
}
.cg-import-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 14px 16px;
border-bottom: 1px solid var(--lp-line);
}
.cg-import-head h2 {
margin: 0;
font-size: var(--lp-fs-md);
font-weight: 600;
color: var(--lp-ink);
}
.cg-import-x {
border: 0;
background: none;
color: var(--lp-muted);
font-size: var(--lp-fs-lg);
line-height: 1;
cursor: pointer;
padding: 2px 6px;
}
.cg-import-x:hover {
color: var(--lp-ink);
}
.cg-import-body {
padding: 14px 16px;
overflow: auto;
}
.cg-import-lede {
margin: 0 0 8px;
font-size: var(--lp-fs-sm);
color: var(--lp-ink);
}
.cg-import-note {
margin: 0 0 12px;
font-size: var(--lp-fs-xs);
color: var(--lp-muted);
}
.cg-import-file {
font-size: var(--lp-fs-sm);
}
/* The mapping list: the spreadsheet's column on the left, this database's field on the right,
so the eye reads it as "this becomes that" rather than as a form. */
.cg-import-map {
display: flex;
flex-direction: column;
gap: 6px;
}
.cg-import-row {
display: grid;
grid-template-columns: 1fr 200px;
align-items: center;
gap: 10px;
}
.cg-import-col {
font-size: var(--lp-fs-sm);
color: var(--lp-ink);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.cg-import-row select {
font-family: inherit;
font-size: var(--lp-fs-xs);
padding: 4px 6px;
border: 1px solid var(--lp-line);
border-radius: var(--lp-r-sm);
background: var(--lp-bg);
color: var(--lp-ink);
}
/* A refusal is not an error state to be styled red-alert; it is a list of things to fix, so it
takes the yellow tint the rest of the product uses for "look at this before continuing". */
.cg-import-problems {
margin-top: 12px;
padding: 10px 12px;
border: 1px solid var(--lp-yellow);
border-radius: var(--lp-r-sm);
background: var(--lp-yellow-tint);
color: var(--lp-yellow-deep);
font-size: var(--lp-fs-xs);
}
.cg-import-problems ul {
margin: 6px 0;
padding-left: 18px;
}
.cg-import-problems p {
margin: 6px 0 0;
}
.cg-import-error {
margin: 0;
padding: 10px 16px;
background: var(--lp-red-tint);
color: var(--lp-red-deep);
font-size: var(--lp-fs-xs);
}
.cg-import-foot {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 8px;
padding: 12px 16px;
border-top: 1px solid var(--lp-line);
}
.cg-import-count {
margin-right: auto;
font-size: var(--lp-fs-xs);
color: var(--lp-muted);
}