/* ============================================================================= * B01_Dashboard_UI_Style_Pages.css * 대시보드 세부 페이지 공용 꼴(549) — 머리 · 표(줄 40 · 세로선 없음) · ⋯ · 탭 · 설정 줄 · 빈 상태. * 색 · 간격은 `.b01-shell` 변수(--b01-*)만. 페이지 전용 조각은 아래 쪽에 이어 붙임. * ========================================================================== */ .b01-pg { display: flex; flex-direction: column; gap: 16px; max-width: 1120px; color: var(--b01-text); } .b01-pg__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; } .b01-pg__title { margin: 0; font-size: 20px; font-weight: 700; color: var(--b01-text); } .b01-pg__desc { margin: 4px 0 0; color: var(--b01-muted); font-size: 13px; } .b01-pg__action { display: flex; gap: 8px; flex: none; } .b01-pg__body { display: flex; flex-direction: column; gap: 12px; } /* 카드 · 표 */ .b01-pg-card { background: var(--b01-card); border: 1px solid var(--b01-line); border-radius: var(--b01-radius); } .b01-pg-scroll { overflow-x: auto; } .b01-pg-table { width: 100%; border-collapse: collapse; font-size: 13px; } .b01-pg-table th { height: 36px; padding: 0 12px; text-align: left; font-weight: 600; font-size: 12px; color: var(--b01-muted); border-bottom: 1px solid var(--b01-line); white-space: nowrap; } .b01-pg-table td { height: 40px; padding: 0 12px; border-bottom: 1px solid var(--b01-line); vertical-align: middle; } .b01-pg-table tbody tr:last-child td { border-bottom: 0; } .b01-pg-table tbody tr:hover { background: var(--b01-hover); } .b01-pg-table .is-end { text-align: right; } .b01-pg-table td.b01-pg-menucell { width: 44px; padding: 0 8px; text-align: right; } .b01-pg-table tr.is-sub td { height: auto; padding: 0; background: var(--b01-bg); } .b01-pg-table tr.is-sub:hover { background: var(--b01-bg); } /* 이름 칸 */ .b01-pg-name { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; } .b01-pg-name__main { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .b01-pg-name__sub { font-size: 11.5px; color: var(--b01-muted); } .b01-pg-muted { color: var(--b01-muted); } .b01-pg-inline { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; } /* 배지 */ .b01-pg-badge { border-radius: 999px; font-size: 11.5px; padding: 1px 8px; white-space: nowrap; } /* 줄 끝 ⋯ */ .b01-pg-menu { position: relative; display: inline-block; } .b01-pg-menu__btn { display: grid; place-items: center; width: 28px; height: 28px; border: 0; border-radius: 6px; background: none; color: var(--b01-muted); cursor: pointer; } .b01-pg-menu__btn:hover, .b01-pg-menu.is-open .b01-pg-menu__btn { background: var(--b01-hover); color: var(--b01-text); } .b01-pg-menu__pop { position: absolute; right: 0; top: 30px; z-index: 20; min-width: 132px; padding: 4px; background: var(--b01-card); border: 1px solid var(--b01-line); border-radius: 8px; box-shadow: 0 6px 18px rgb(0 0 0 / 12%); text-align: left; } .b01-pg-menu__item { display: block; width: 100%; padding: 7px 10px; border: 0; border-radius: 6px; background: none; color: var(--b01-text); font: inherit; text-align: left; cursor: pointer; white-space: nowrap; } .b01-pg-menu__item:hover { background: var(--b01-hover); } .b01-pg-menu__item.is-danger { color: var(--b01-alert); } /* 탭 */ .b01-pg-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--b01-line); } .b01-pg-tabs__tab { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; margin-bottom: -1px; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--b01-muted); font: inherit; font-weight: 600; cursor: pointer; } .b01-pg-tabs__tab:hover { color: var(--b01-text); } .b01-pg-tabs__tab.is-active { color: var(--b01-accent); border-bottom-color: var(--b01-accent); } .b01-pg-tabs__count { min-width: 18px; padding: 0 5px; border-radius: 9px; background: var(--b01-alert); color: #fff; font-size: 11px; line-height: 18px; text-align: center; } .b01-pg-tabs__count[hidden] { display: none; } /* 설정 줄(Linear 꼴) */ .b01-pg-settings { overflow: hidden; } .b01-pg-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; padding: 8px 16px; border-bottom: 1px solid var(--b01-line); } .b01-pg-row:last-child { border-bottom: 0; } .b01-pg-row__text { display: flex; flex-direction: column; min-width: 0; } .b01-pg-row__desc { font-size: 12px; color: var(--b01-muted); } .b01-pg-row__side { display: flex; align-items: center; gap: 8px; flex: none; max-width: 55%; } .b01-pg-row__value { text-align: right; overflow-wrap: anywhere; } /* 빈 상태 */ .b01-pg-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 48px 16px; text-align: center; } .b01-pg-empty__icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--b01-accent-soft); color: var(--b01-accent); } .b01-pg-empty__text { margin: 0; font-weight: 600; } .b01-pg-empty__hint { margin: 0; font-size: 12.5px; color: var(--b01-muted); } .b01-pg-link { border: 0; background: none; color: var(--b01-accent); font: inherit; font-size: 12.5px; cursor: pointer; text-decoration: underline; } /* 단추 맞춤 — 셸 안 단추 높이 */ .b01-pg .ui-btn { display: inline-flex; align-items: center; gap: 6px; } /* ── 임시 보관함 ──────────────────────────────────────────────────────────── */ .b01-pg-left { display: inline-flex; align-items: center; gap: 8px; min-width: 140px; } .b01-pg-left__bar { flex: none; width: 64px; height: 6px; border-radius: 3px; background: var(--b01-line); overflow: hidden; } .b01-pg-left__bar > i { display: block; height: 100%; background: var(--b01-accent); } .b01-pg-left.is-soon { color: var(--b01-alert); font-weight: 600; } .b01-pg-left.is-soon .b01-pg-left__bar > i { background: var(--b01-alert); } .b01-pg-caret { display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 4px; border: 0; background: none; color: var(--b01-muted); cursor: pointer; transition: transform 0.12s; } .b01-pg-caret.is-open { transform: rotate(90deg); } .b01-pg-files { width: 100%; border-collapse: collapse; font-size: 12.5px; } .b01-pg-files td { height: 34px; padding: 0 12px; border-bottom: 1px solid var(--b01-line); } .b01-pg-files tr:last-child td { border-bottom: 0; } .b01-pg-files td:first-child { padding-left: 44px; } .b01-pg-progress { display: inline-flex; align-items: center; gap: 8px; } .b01-pg-progress__bar { width: 96px; height: 6px; border-radius: 3px; background: var(--b01-line); overflow: hidden; } .b01-pg-progress__bar > i { display: block; height: 100%; background: var(--b01-accent); } .b01-pg-meta { color: var(--b01-muted); font-size: 12px; } /* ── 사람 · 회사 ──────────────────────────────────────────────────────────── */ .b01-pg-person { display: flex; align-items: center; gap: 8px; min-width: 0; } .b01-pg-avatar { display: grid; place-items: center; flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--b01-accent-soft); color: var(--b01-accent); font-size: 12px; font-weight: 700; } .b01-pg-invite { display: flex; flex-direction: column; gap: 12px; padding: 16px; max-width: 520px; } .b01-pg-invite__form { display: flex; gap: 8px; align-items: flex-end; } .b01-pg-invite__form > :first-child { flex: 1; } .b01-pg-note { margin: 0; font-size: 12.5px; color: var(--b01-muted); }