/* 회사 주소 입력 — 검색해서 고르는 칸 (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; }