/* Xbid 회원 업무공간(/app/, body.xb-app) · 로그인/가입(body.xb-auth) — 기존 회원 화면 마크업(swin-member·swin-ds 토큰)을 Xbid 토큰으로.
   원칙: 같은 토큰 이름을 body.xb-app.bps-member-home 범위에서 다시 정의(예전 care79 값 덮음) + 업무공간 틀에 맞춘 배치 몇 가지. 기능·마크업은 그대로. */
body.xb-app.bps-member-home, body.xb-auth.bps-member-home {
	--swin-red: #B42318; --swin-red-dark: #912018; --swin-red-tint: #FEF3F2;
	--swin-text: #111827; --swin-text-2: #475569;
	--swin-bg: #F7F9FC; --swin-panel: #FFFFFF; --swin-surface-2: #F1F5F9;
	--swin-border: #E5E9F0; --swin-border-strong: #94A3B8; --swin-focus: #111827;
	--swin-danger-bg: #FEF3F2; --swin-danger-fg: #B42318; --swin-danger-line: #F04438;
	--swin-ok-bg: #ECFDF3; --swin-ok-fg: #067647; --swin-ok-line: #12B76A;
	--swin-warn-bg: #FFFAEB; --swin-warn-fg: #B54708; --swin-warn-line: #F79009;
	--swin-muted-bg: #F1F5F9; --swin-muted-fg: #334155; --swin-muted-line: #CBD5E1;
	--swin-gold: #64748B; --swin-gold-d: #111827; --swin-champ-a: #F1FBDD; --swin-champ-b: #C7F464; --swin-champ-t: #111827; --swin-champ-line: #A3D93B;
	--swin-radius-lg: 12px;
	--swin-shadow: 0 24px 48px -20px rgba(17, 24, 39, .35); --swin-shadow-card: none; --swin-shadow-btn: none;
	--swin-primary-bg: #C7F464; --swin-primary-bg-hover: #A3D93B; --swin-primary-fg: #111827; --swin-primary-line: #C7F464; --swin-primary-line-hover: #A3D93B; --swin-primary-shadow: none;
	--bs-ink: #111827; --bs-ink-2: #334155; --bs-ink-3: #475569; --bs-ink-4: #64748B;
	--bs-bg: #F7F9FC; --bs-border-strong: #94A3B8; --bs-fill: #F1F5F9; --bs-fill-2: #F7F9FC; --bs-line: #E5E9F0;
	--bs-accent: #B42318; --bs-accent-dark: #912018; --bs-ok: #067647; --bs-warn: #B54708; --bs-info: #1D4ED8;
	--bs-radius: 12px; --bs-radius-btn: 10px;
	--bps-primary: #111827; --bps-primary-dark: #000; --bps-primary-tint: #F1F5F9;
	--bps-select: #111827; --bps-select-text: #111827; --bps-success: #067647; --bps-calc: #111827; --bps-mint-tint: #F1FBDD;
	--bps-warn: #B54708; --bps-danger: #B42318; --bps-border: #E5E9F0; --bps-border-strong: #94A3B8; --bps-page-bg: #F7F9FC; --bps-text: #111827; --bps-muted: #475569;
	letter-spacing: normal;
	background: #F7F9FC;
	color: #1F2937;
	font-family: var(--xb-font);
}
body.xb-app ::selection, body.xb-auth ::selection { background: #E2F7B8; color: #111827; }

/* 버튼: 주 행동 = 라임(글자 네이비), 보조 = 흰 바탕 + 회색 테두리. pill·그림자 없앰 */
body.xb-app .bps-btn, body.xb-app .swin-btn, body.xb-auth .bps-btn { border-radius: 10px; box-shadow: none; min-height: 44px; font-weight: 700; }
body.xb-app .bps-btn.bps-btn-primary, body.xb-app .swin-btn.swin-btn-primary, body.xb-auth .bps-btn.bps-btn-primary { background: #C7F464; border-color: #C7F464; color: #111827; box-shadow: none; }
body.xb-app .bps-btn.bps-btn-primary:hover, body.xb-auth .bps-btn.bps-btn-primary:hover { background: #A3D93B; border-color: #A3D93B; }
body.xb-app .bps-btn.bps-btn-outline, body.xb-auth .bps-btn.bps-btn-outline { background: #fff; border-color: #CBD5E1; color: #111827; }
body.xb-app .bps-btn.bps-btn-outline:hover { border-color: #111827; background: #fff; color: #111827; }
body.xb-app .swin-btn:hover { background: #fff; border-color: #111827; color: #111827; }
body.xb-app .bs-link, body.xb-auth .bs-link { color: #111827; }

/* 틀: 예전 회원 머리·안쪽 탭은 업무공간 메뉴로 대체 */
body.xb-app .bps-bid-suite-nav { display: none; }
body.xb-app .bps-member-content { max-width: none; margin: 0; padding: 0; }
body.xb-app .bps-panel.bps-bid-suite { background: transparent; border: 0; padding: 0; margin: 0; box-shadow: none; max-width: none; border-radius: 0; }
body.xb-app .bps-bid-suite-panel { padding: 0; }
body.xb-app .bps-panel { border-radius: 12px; box-shadow: none; border-color: #E5E9F0; }
body.xb-app .xb-side-acts { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 8px; }
body.xb-app .xb-side-acts a, body.xb-app .xb-side-acts button { margin: 0; color: #334155; font-size: 14px; }
body.xb-app .xb-mtop-link { margin-left: auto; font-size: 14px; color: #334155; }
body.xb-app .xb-mtop .xb-btn { margin-left: 4px; }

/* 오늘 공고: 제목 → 상태 요약(빠른 필터) → 검색·채널 → 저장 검색 → 단계 → 목록 */
body.xb-app.xb-tab-today .bps-member-bid-home { display: flex; flex-direction: column; }
body.xb-app.xb-tab-today .bps-member-bid-intro { order: -3; }
body.xb-app.xb-tab-today .bps-member-quick { order: -2; }
body.xb-app .bps-member-bid-title { font-size: 20px; color: #111827; letter-spacing: -0.01em; }
body.xb-app .bps-member-bid-summary { color: #475569; font-size: 15px; }

/* 상태 요약 타일(기존 빠른 필터 링크 그대로 — 누르면 서버에서 거른 목록) */
body.xb-app .bps-member-quick { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; padding: 0; margin: 12px 0 16px; background: #fff; border: 1px solid #E5E9F0; border-radius: 12px; overflow: hidden; }
body.xb-app .bps-member-quick .bps-bid-chip { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px; min-height: 80px; margin: 0; padding: 12px 16px; border: 0; border-right: 1px solid #E5E9F0; border-radius: 0; background: #fff; color: #334155; font-size: 15px; font-weight: 600; box-shadow: none; text-align: left; white-space: normal; line-height: 1.3; }
body.xb-app .bps-member-quick .bps-bid-chip:last-child { border-right: 0; }
body.xb-app .bps-member-quick .bps-bid-chip .bps-chip-count { order: 2; background: none; padding: 0; margin: 0; min-width: 0; font-size: 26px; line-height: 1.15; font-weight: 800; color: #111827; font-variant-numeric: tabular-nums; }
body.xb-app .bps-member-quick .bps-bid-chip:hover { background: #F7F9FC; }
body.xb-app .bps-member-quick .bps-bid-chip.is-active { background: #fff; color: #111827; box-shadow: inset 0 -4px 0 #111827; }
body.xb-app .bps-member-quick .bps-bid-chip[data-qf="today"]::before,
body.xb-app .bps-member-quick .bps-bid-chip[data-qf="apply"]::before,
body.xb-app .bps-member-quick .bps-bid-chip[data-qf="check"]::before,
body.xb-app .bps-member-quick .xb-done-chip::before { content: ''; width: 8px; height: 8px; border-radius: 50%; display: block; margin-bottom: 2px; }
body.xb-app .bps-member-quick .bps-bid-chip[data-qf="today"]::before { background: #B42318; }
body.xb-app .bps-member-quick .bps-bid-chip[data-qf="apply"]::before { background: #1D4ED8; }
body.xb-app .bps-member-quick .bps-bid-chip[data-qf="check"]::before { background: #F79009; }
body.xb-app .bps-member-quick .xb-done-chip::before { background: #12B76A; }

/* 검색·채널 칩 */
body.xb-app .bps-bid-chip { border-radius: 999px; border-color: #CBD5E1; background: #fff; color: #334155; box-shadow: none; }
body.xb-app .bps-bid-chip.is-active { background: #111827; border-color: #111827; color: #fff; }
body.xb-app .bps-bid-chip.is-active .bps-chip-count { color: #C7F464; background: transparent; }
body.xb-app .bs-search input[type="search"] { border-radius: 10px; border-color: #CBD5E1; min-height: 44px; font-size: 16px; }

/* 단계 탭(견적 요청·투찰 대기·오늘 완료·참가신청) */
body.xb-app .bps-member-step-tabs { background: #EEF2F7; border-radius: 10px; padding: 3px; box-shadow: none; }
body.xb-app .bps-member-step-tab { border-radius: 8px; color: #334155; box-shadow: none; }
body.xb-app .bps-member-step-tab.is-active { background: #fff; color: #111827; box-shadow: 0 1px 2px rgba(17, 24, 39, .12); }

/* 공고 카드 → PC에서는 표처럼 읽히는 행(정보 왼쪽, 금액·마감 가운데, 행동 오른쪽). 모바일은 기존 카드 목록 */
body.xb-app .bps-notice-card.bps-member-notice-card { border-radius: 12px; box-shadow: none; border: 1px solid #E5E9F0; background: #fff; }
body.xb-app .bps-notice-card-title { color: #111827; }
body.xb-app .bs-dday.is-urgent, body.xb-app .bps-badge-dday.is-urgent { color: #B42318; }
body.xb-app .bps-member-fact-value strong { color: #111827; font-variant-numeric: tabular-nums; }
@media (min-width: 961px) {
	body.xb-app .bps-member-card-grid { display: block; background: #fff; border: 1px solid #E5E9F0; border-radius: 12px; overflow: hidden; }
	body.xb-app .bps-member-card-grid > .bps-notice-card.bps-member-notice-card { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.35fr) minmax(200px, auto); grid-template-areas: "top facts acts" "title facts acts" "code facts acts" "rest rest rest"; column-gap: 28px; row-gap: 4px; margin: 0; padding: 16px 20px; border: 0; border-bottom: 1px solid #E5E9F0; border-radius: 0; }
	body.xb-app .bps-member-card-grid > .bps-notice-card:last-child { border-bottom: 0; }
	body.xb-app .bps-member-card-grid > .bps-notice-card:hover { background: #FAFBFD; }
	body.xb-app .bps-member-notice-card > .bs-card-top { grid-area: top; }
	body.xb-app .bps-member-notice-card > .bps-notice-card-title { grid-area: title; margin: 0; font-size: 17px; line-height: 1.4; }
	body.xb-app .bps-member-notice-card > .bps-member-facts { grid-area: facts; align-self: center; margin: 0; }
	body.xb-app .bps-member-notice-card > .bps-notice-card-code-block { grid-area: code; margin: 0; }
	body.xb-app .bps-member-notice-card > .bps-notice-card-actions { grid-area: acts; align-self: center; justify-self: end; margin: 0; text-align: right; }
	body.xb-app .bps-member-notice-card > :not(.bs-card-top):not(.bps-notice-card-title):not(.bps-member-facts):not(.bps-notice-card-code-block):not(.bps-notice-card-actions) { grid-column: 1 / -1; }
	body.xb-app .bps-member-notice-card .bs-fact-main .bps-member-fact-value strong { font-size: 18px; }
}

/* 접힘(고급·도우미·근거) */
body.xb-app details.bs-more, body.xb-app .swin-advanced, body.xb-app .bps-evidence-panel { border-radius: 10px; border-color: #E5E9F0; background: #fff; box-shadow: none; }

/* 업체정보 */
.xb-company { background: #fff; border: 1px solid #E5E9F0; border-radius: 12px; padding: 8px 20px 20px; max-width: 880px; }
.xb-company-kv th { width: 160px; vertical-align: top; }
.xb-company-kv td { text-align: left; font-weight: 600; word-break: break-all; }
.xb-company-kv td > div + div { margin-top: 4px; }
.xb-muted { color: #64748B; font-weight: 500; }
.xb-help { margin: 14px 0 0; color: #475569; font-size: 15px; }

/* 상태 타일(공개 화면 예시용 span) */
.xb-status > .xb-status-tile { display: grid; gap: 2px; padding: 16px 20px; min-height: 84px; border-right: 1px solid var(--xb-line); color: var(--xb-ink-2); }
.xb-status > .xb-status-tile:last-child { border-right: 0; }
.xb-status > .xb-status-tile.is-on { box-shadow: inset 0 -4px 0 var(--xb-navy); }

/* 로그인·가입 */
.xb-auth-sec { background: var(--xb-cool); border-bottom: 1px solid var(--xb-line); padding: 64px 0 88px; }
.xb-auth-in { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 56px; align-items: start; }
.xb-auth-side h1 { margin: 0; font-size: 44px; line-height: 1.2; font-weight: 800; letter-spacing: -0.03em; color: var(--xb-navy); }
.xb-auth-card { background: #fff; border: 1px solid #D9E0EA; border-radius: 16px; padding: 28px; }
/* 로그인: 가운데 좁은 카드 하나(가입은 항목이 많아 2단 유지) */
.xb-auth-login { padding: 56px 0 72px; }
.xb-auth-login .xb-auth-in { grid-template-columns: minmax(0, 1fr); gap: 20px; max-width: 440px; }
.xb-auth-login .xb-auth-side h1 { font-size: 30px; }
.xb-auth-login .xb-auth-side .xb-hero-answer { font-size: 15px; margin: 10px 0 0; }
.xb-auth-login .xb-auth-side .xb-hero-note:empty, .xb-auth-login .xb-eyebrow { display: none; }
.xb-auth-login .xb-auth-card { padding: 24px; }
body.xb-auth .bps-auth .bps-field span { color: #334155; font-weight: 600; font-size: 15px; }
body.xb-auth .bps-auth input[type="text"], body.xb-auth .bps-auth input[type="password"], body.xb-auth .bps-auth input[type="email"], body.xb-auth .bps-auth input[type="tel"], body.xb-auth .bps-auth select { min-height: 48px; border-radius: 10px; border: 1px solid #CBD5E1; font-size: 16px; background: #fff; color: #111827; }
body.xb-auth .bps-auth .bps-modal-btns { justify-content: flex-start; }
body.xb-auth .bps-auth .bps-do-login { min-width: 160px; }
body.xb-auth .bps-auth h3 { color: #111827; }
body.xb-auth .bps-auth-error { color: #B42318; }

@media (max-width: 960px) {
	body.xb-app .bps-member-quick { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	body.xb-app .bps-member-quick .bps-bid-chip { min-height: 72px; padding: 10px 12px; font-size: 14px; border-bottom: 1px solid #E5E9F0; }
	body.xb-app .bps-member-quick .bps-bid-chip:nth-child(3n) { border-right: 0; }
	body.xb-app .bps-member-quick .bps-bid-chip:nth-child(n+4) { border-bottom: 0; }
	body.xb-app .bps-member-quick .bps-bid-chip .bps-chip-count { font-size: 22px; }
	.xb-auth-in { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.xb-auth-sec { padding: 36px 0 56px; }
	.xb-auth-side h1 { font-size: 32px; }
	.xb-auth-card { padding: 20px 16px; }
	.xb-company { padding: 4px 14px 16px; }
	.xb-company-kv th { width: 104px; }
}

/* 보정: 예전 규칙이 더 구체적이라 이긴 곳 */
body.xb-app .bps-member-quick .bps-bid-chip.is-active { border: 0; outline: 0; background: #fff; }
body.xb-app .bps-member-quick .bps-bid-chip.is-active .bps-chip-count { color: #111827; }
body.xb-app .bps-member-filterbar .bps-bid-chip.is-active, body.xb-app .bps-member-saved .bps-bid-chip.is-active { background: #111827; border-color: #111827; color: #fff; box-shadow: none; }
body.xb-app .bps-member-step-tabs.bs-segment { background: #EEF2F7; }
body.xb-app .bps-member-step-tabs.bs-segment .bps-member-step-tab.is-active { background: #fff; color: #111827; }
body.xb-app .bps-member-bid-home > p:empty { display: none; }
/* 개발·연습 도구는 맨 아래로(접힘 그대로) */
body.xb-app.xb-tab-today .bps-member-bid-home > .bps-autobid-practice { order: 20; }
body.xb-app.xb-tab-today .bps-member-bid-home > .bps-member-help { order: 21; }
@media (max-width: 960px) {
	body.xb-app .xb-app-shell { background: none; }
	body.xb-app.xb-tab-today .xb-mhead { display: none; }
}
/* 로그인·가입: 예전 카드 틀 제거(카드 안 카드), 버튼 모양 통일 */
body.xb-auth .xb-auth-card .bps-auth, body.xb-auth .xb-auth-card .bps-auth-form, body.xb-auth .xb-auth-card .bps-panel { border: 0; box-shadow: none; padding: 0; margin: 0; max-width: none; background: transparent; border-radius: 0; }
body.xb-auth .xb-auth-card .bps-btn { border-radius: 10px; }
.xb-prep-link { margin: 0 0 16px; padding: 14px 16px; background: #fff; border: 1px solid #E5E9F0; border-radius: 12px; color: #334155; font-size: 15px; }

/* 관리 포털(body.bps-admin-portal) — 색 토큰만 Xbid로(배치·기능 그대로). swin-admin.css 의 care79 값 덮음 */
html body.bps-admin-portal {
	--swin-red: #B42318; --swin-red-dark: #912018; --swin-red-tint: #FEF3F2;
	--swin-text: #111827; --swin-text-2: #475569;
	--swin-bg: #F7F9FC; --swin-panel: #FFFFFF; --swin-surface-2: #F1F5F9;
	--swin-border: #E5E9F0; --swin-border-strong: #94A3B8; --swin-focus: #111827;
	--swin-link: #111827; --swin-nav-bg: #FFFFFF; --swin-nav-fg: #334155;
	--swin-danger-bg: #FEF3F2; --swin-danger-fg: #B42318; --swin-danger-line: #F04438;
	--swin-ok-bg: #ECFDF3; --swin-ok-fg: #067647; --swin-ok-line: #12B76A;
	--swin-warn-bg: #FFFAEB; --swin-warn-fg: #B54708; --swin-warn-line: #F79009;
	--swin-muted-bg: #F1F5F9; --swin-muted-fg: #334155; --swin-muted-line: #CBD5E1;
	--swin-gold: #64748B; --swin-gold-d: #111827; --swin-champ-a: #F1FBDD; --swin-champ-b: #C7F464; --swin-champ-t: #111827; --swin-champ-line: #A3D93B;
	--swin-radius-lg: 12px; --swin-shadow-card: none;
	--swin-primary-bg: #C7F464; --swin-primary-bg-hover: #A3D93B; --swin-primary-fg: #111827; --swin-primary-line: #C7F464; --swin-primary-line-hover: #A3D93B; --swin-primary-shadow: none;
	--bps-primary: #111827; --bps-primary-dark: #000; --bps-primary-tint: #F1F5F9;
	--bps-select: #111827; --bps-select-text: #111827; --bps-success: #067647; --bps-calc: #111827; --bps-mint-tint: #F1FBDD;
	--bps-warn: #B54708; --bps-danger: #B42318; --bps-border: #E5E9F0; --bps-border-strong: #94A3B8; --bps-page-bg: #F7F9FC; --bps-text: #111827; --bps-muted: #475569;
}
html body.bps-admin-portal ::selection { background: #E2F7B8; color: #111827; }
html body.bps-admin-portal :is(.bps-btn, .swin-btn):disabled { background: #F1F5F9; border-color: #E5E9F0; color: #64748B; }
html body.bps-admin-portal :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]), select, textarea) { border-color: #94A3B8; }
