Files
Aislo/B01_Dashboard/B01_Dashboard_UI_Style_Company.css
T

425 lines
9.0 KiB
CSS

/* 회사 주소 입력 — 검색해서 고르는 칸 (2026-09-13).
라벨·입력·버튼을 한 줄에 세운다. ui-field 가 기본이 세로(라벨 위·입력 아래·오류 슬롯)라
그대로 두면 버튼이 오류 슬롯 높이만큼 밀려 수평이 어긋난다 — 이 칸에서만 가로로 눕힌다. */
.b01-dashboard__address {
display: flex;
flex-direction: column;
gap: var(--spacing-8, 8px);
}
.b01-dashboard__address-row {
display: flex;
align-items: center;
gap: var(--spacing-8, 8px);
}
.b01-dashboard__address-row > .ui-field {
display: flex;
flex: 1 1 auto;
flex-direction: row;
align-items: center;
gap: var(--spacing-8, 8px);
min-width: 0;
margin: 0;
}
.b01-dashboard__address .ui-field__label {
flex: 0 0 64px;
margin: 0;
white-space: nowrap;
}
.b01-dashboard__address .ui-input {
flex: 1 1 auto;
min-width: 0;
}
.b01-dashboard__address .ui-field__error {
display: none;
}
.b01-dashboard__address-row > .ui-btn {
flex: 0 0 auto;
}
.b01-dashboard__address-zip {
flex: 0 0 auto;
color: var(--color-text-muted, #666);
font-size: 0.85rem;
white-space: nowrap;
}
.b01-dashboard__address-list {
display: flex;
flex-direction: column;
max-height: 220px;
overflow-y: auto;
overscroll-behavior: contain;
border: 1px solid var(--color-border);
border-radius: var(--radius-8, 8px);
}
.b01-dashboard__address-item {
display: flex;
flex-direction: column;
gap: 2px;
padding: var(--spacing-8, 8px);
border: 0;
border-bottom: 1px solid var(--color-border);
background: transparent;
color: inherit;
text-align: left;
cursor: pointer;
}
.b01-dashboard__address-item:last-child {
border-bottom: 0;
}
.b01-dashboard__address-item:hover,
.b01-dashboard__address-item:focus-visible {
background: var(--color-surface-hover, rgba(0, 0, 0, 0.04));
}
.b01-dashboard__address-item small {
color: var(--color-text-muted, #666);
}
.b01-dashboard__map-zoom {
display: flex;
gap: var(--spacing-8, 8px);
margin-bottom: var(--spacing-8, 8px);
}
/* 회사 주소 지도 미리보기 — 타일 3×3 을 붙이고 가운데 표식을 찍는다 (2026-09-06). */
.b01-dashboard__map-frame {
position: relative;
width: 100%;
max-width: 384px;
aspect-ratio: 1;
overflow: hidden;
border: 1px solid var(--color-border);
border-radius: var(--radius-8, 8px);
}
.b01-dashboard__map-grid {
display: grid;
grid-template-columns: repeat(3, 256px);
transform: scale(0.5);
transform-origin: top left;
}
.b01-dashboard__map-marker {
position: absolute;
width: 12px;
height: 12px;
margin: -6px 0 0 -6px;
border: 2px solid var(--color-surface, #fff);
border-radius: 50%;
background: var(--color-danger, #d33);
}
/* 프로젝트 참여자 고르기 (2026-09-06). */
.b01-dashboard__members {
display: flex;
flex-direction: column;
gap: var(--spacing-4, 4px);
max-height: 160px;
overflow-y: auto;
}
.b01-dashboard__member-row {
display: flex;
align-items: center;
gap: var(--spacing-8);
}
.b01-knowledge-chat {
position: fixed;
right: 24px;
bottom: 24px;
z-index: 100;
display: flex;
flex-direction: column-reverse;
align-items: flex-end;
gap: 8px;
}
.b01-knowledge-chat__toggle,
.b01-knowledge-chat__form button {
border: 0;
background: var(--color-primary);
color: var(--color-primary-text);
font: inherit;
cursor: pointer;
}
.b01-knowledge-chat__toggle {
display: grid;
width: 58px;
height: 58px;
place-items: center;
border-radius: 50%;
box-shadow: 0 4px 16px #0004;
}
.b01-knowledge-chat__toggle svg {
width: 30px;
height: 30px;
}
.b01-knowledge-chat__panel {
display: flex;
flex-direction: column;
width: min(380px, calc(100vw - 32px));
height: min(680px, calc(100dvh - 104px));
border: 1px solid var(--color-border);
border-radius: 12px;
background: var(--color-surface, #fff);
box-shadow: 0 8px 28px #0003;
color: var(--color-text-body);
overflow: hidden;
overscroll-behavior: contain;
}
.b01-knowledge-chat__panel[hidden] {
display: none;
}
.b01-knowledge-chat__panel header {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 14px;
border-bottom: 1px solid var(--color-border);
}
.b01-knowledge-chat__avatar {
display: grid;
width: 34px;
height: 34px;
place-items: center;
border-radius: 50%;
background: var(--color-primary);
color: var(--color-primary-text);
}
.b01-knowledge-chat__avatar svg {
width: 21px;
height: 21px;
}
.b01-knowledge-chat__close {
margin-left: auto;
border: 0;
background: transparent;
color: inherit;
font: inherit;
font-size: 26px;
cursor: pointer;
}
.b01-knowledge-chat__messages {
display: flex;
flex: 1;
flex-direction: column;
gap: 12px;
min-height: 0;
padding: 16px 12px;
overflow-y: auto;
overscroll-behavior: contain;
}
.b01-knowledge-chat__user,
.b01-knowledge-chat__reply {
max-width: 88%;
margin: 0;
padding: 10px 12px;
border-radius: 14px;
overflow-wrap: anywhere;
white-space: pre-wrap;
}
.b01-knowledge-chat__user {
align-self: flex-end;
border-bottom-right-radius: 4px;
background: var(--color-primary);
color: var(--color-primary-text);
}
.b01-knowledge-chat__reply {
align-self: flex-start;
border: 1px solid var(--color-border);
border-bottom-left-radius: 4px;
background: var(--color-surface-raised);
}
.b01-knowledge-chat__reply details {
margin-top: 8px;
font-size: 0.9em;
}
.b01-knowledge-chat__reply summary {
cursor: pointer;
overflow-wrap: anywhere;
}
.b01-knowledge-chat__reply pre {
max-height: 220px;
overflow: auto;
white-space: pre-wrap;
font: inherit;
}
.b01-knowledge-chat__sources {
display: grid;
gap: 6px;
margin-top: 12px;
padding-top: 10px;
border-top: 1px solid var(--color-border);
}
.b01-knowledge-chat__sources > summary {
margin-bottom: 3px;
color: var(--color-text-secondary, #666);
font-size: 0.85em;
}
.b01-knowledge-chat__source {
display: grid;
gap: 3px;
width: 100%;
padding: 8px 10px;
border: 1px solid var(--color-border);
border-radius: 8px;
background: var(--color-surface, #fff);
color: inherit;
text-align: left;
cursor: pointer;
}
.b01-knowledge-chat__source span {
color: var(--color-text-secondary, #666);
font-size: 0.8em;
overflow-wrap: anywhere;
}
.b01-knowledge-source-modal.ui-modal {
width: min(900px, 94vw);
--modal-max: 88vh;
}
.b01-knowledge-source-modal__content {
max-height: calc(88vh - 100px);
overflow: auto;
overscroll-behavior: contain;
padding: 8px 16px;
line-height: 1.75;
overflow-wrap: anywhere;
}
.b01-knowledge-source-modal__content h2,
.b01-knowledge-source-modal__content h3,
.b01-knowledge-source-modal__content h4,
.b01-knowledge-source-modal__content h5 {
margin: 1.4em 0 0.5em;
line-height: 1.4;
}
.b01-knowledge-source-modal__content p,
.b01-knowledge-source-modal__content ul,
.b01-knowledge-source-modal__content ol {
margin: 0.6em 0 1em;
}
.b01-knowledge-source-modal__content code {
padding: 0.1em 0.35em;
border-radius: 4px;
background: var(--color-surface);
}
.b01-knowledge-source-modal__content .ui-markdown-table {
max-width: 100%;
overflow-x: auto;
overscroll-behavior: contain;
}
.b01-knowledge-source-modal__content table {
width: 100%;
border-collapse: collapse;
font-size: 0.92em;
}
.b01-knowledge-source-modal__content th,
.b01-knowledge-source-modal__content td {
padding: 8px 10px;
border: 1px solid var(--color-border);
text-align: left;
vertical-align: top;
}
.b01-knowledge-source-modal__content th {
background: var(--color-surface);
}
.b01-knowledge-chat__form {
display: flex;
align-items: flex-end;
gap: 8px;
padding: 8px;
border-top: 1px solid var(--color-border);
}
.b01-knowledge-chat__form textarea {
min-width: 0;
flex: 1;
min-height: 56px;
max-height: 140px;
padding: 8px;
border: 1px solid var(--color-border);
border-radius: 6px;
background: var(--color-canvas);
color: var(--color-text-body);
font: inherit;
resize: vertical;
overflow-y: auto;
}
.b01-knowledge-chat__form textarea::placeholder {
color: var(--color-text-muted);
}
.b01-knowledge-chat__form button {
padding: 9px 14px;
border-radius: 8px;
}
.b01-knowledge-chat button:focus-visible,
.b01-knowledge-chat textarea:focus-visible {
outline: 2px solid var(--color-royal-amethyst, #6843a7);
outline-offset: 2px;
}
/* 계산 자리 창(504-2) — 묶음 · 까닭 글은 줄바꿈 · 체크 칸은 가운데 */
.b01-dashboard__calc-sites .b01-dashboard__table td {
white-space: normal;
}
.b01-dashboard__calc-sites .b01-dashboard__table td:nth-child(2),
.b01-dashboard__calc-sites .b01-dashboard__table td:nth-child(3) {
text-align: center;
}
.b01-dashboard__calc-sites .b01-dashboard__calc-group td {
background: var(--color-surface);
font-weight: var(--font-weight-medium);
}
.b01-dashboard__calc-sites .b01-dashboard__calc-name {
padding-left: var(--spacing-16);
}
.b01-dashboard__calc-sites .b01-dashboard__calc-group .b01-dashboard__calc-name {
padding-left: 0;
}
.b01-dashboard__calc-count,
.b01-dashboard__calc-note {
margin: 0 0 0.5rem;
}