@charset "utf-8";

/* ==========================================================================
   partner pages.css
   화면별: 가입/로그인, 대시보드, 의뢰 탐색, 시공, 정산, 프로필, 사이드 카드
   ========================================================================== */

/* 로그인 / 가입 */
.join-page-wrapper { display: flex; justify-content: space-between; align-items: flex-start; max-width: 1200px; margin: 40px auto; padding: 0 20px; gap: 40px; box-sizing: border-box; }
.join-container { flex: 1; max-width: 680px; background: #ffffff; padding: 40px; border-radius: 12px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); box-sizing: border-box; }
.benefit-sticky-box { width: 380px; position: sticky; top: 100px; background: #ffffff; padding: 30px; border-radius: 12px; border: 1px solid #e2e8f0; box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04); box-sizing: border-box; }
.join-step-wrapper { display: flex; align-items: center; gap: 16px; margin-bottom: 35px; }
.step-box { display: flex; align-items: center; gap: 8px; font-size: 15px; color: #94a3b8; font-weight: 500; }
.step-box.active { color: #059669; font-weight: 700; }
.step-number { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: #f1f5f9; font-size: 12px; }
.step-box.active .step-number { background: #059669; color: #ffffff; }
.step-divider { color: #cbd5e1; }
.step-divider i { font-size: 11px; }
.login-remember input { width: 16px; height: 16px; margin: 0; accent-color: #059669; cursor: pointer; }
.login-find-link { font-size: 14px; color: #64748b; text-decoration: none; font-weight: 500; }
.login-find-link:hover { color: var(--fns-primary, #059669); }
.login-bottom-notice { margin-top: 24px; text-align: center; font-size: 14px; color: #64748b; }
.login-bottom-notice a { color: var(--fns-primary, #059669); font-weight: 700; text-decoration: none; margin-left: 4px; }
.login-bottom-notice a:hover { text-decoration: underline; }
.password-input-wrapper { position: relative; }
.form-control.input-pw-padding { padding-right: 44px; }
.password-toggle-btn { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); background: none; border: none; cursor: pointer; color: #94a3b8; padding: 6px; }
.join-title-block { margin-bottom: 30px; }
.join-main-title { font-size: 22px; font-weight: 800; color: #0f172a; letter-spacing: -0.5px; margin: 0; }
.join-sub-desc { color: #64748b; font-size: 14px; margin-top: 6px; margin-bottom: 0; }
.form-group { margin-bottom: 24px; text-align: left; }
.form-group label { display: block; font-size: 14px; font-weight: 700; color: #334155; margin-bottom: 8px; }
.form-group.login-toolbar { display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: space-between; align-items: center; gap: 12px; width: 100%; margin-bottom: 20px; }
.form-group.login-toolbar > .login-remember { display: inline-flex; align-items: center; gap: 6px; width: auto; margin: 0; font-size: 14px; font-weight: 500; color: #475569; cursor: pointer; }
.form-group.login-toolbar > .login-find-link { flex-shrink: 0; white-space: nowrap; }
.form-control { width: 100%; height: 50px; padding: 0 16px; border: 1px solid #cbd5e1; border-radius: 8px; font-size: 15px; box-sizing: border-box; transition: border-color 0.2s; }
.form-control:focus { border-color: #059669; outline: none; }
.form-flex { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; }
.flex-phone { flex: 1 1 200px; min-width: 0; }
.flex-1 { flex: 1; margin-top: 0 !important; }
.label-highlight { color: #059669; font-weight: 500; }
.label-optional { color: #64748b; font-weight: 500; }
.file-input-custom { padding: 10px 14px; line-height: 28px; }
.btn-inline-auth { height: 50px; padding: 0 16px; border: 1px solid #059669; background: #ffffff; color: #059669; font-weight: 600; border-radius: 8px; white-space: nowrap; cursor: pointer; flex-shrink: 0; }
.btn-inline-auth.is-muted { background: #f1f5f9; border-color: #cbd5e1; color: #475569; }
.btn-inline-auth:disabled { opacity: 0.55; cursor: not-allowed; }
.form-helper.is-error { color: #dc2626; }
.form-helper.is-ok { color: #059669; font-weight: 600; }
.auth-layer-panel { display: none; margin-top: 12px; }
.auth-layer-panel.is-open { display: block; }
.relative-box { position: relative; display: flex; flex: 1; gap: 10px; }
.auth-input-wrapper { position: relative; flex: 1; }
.input-auth-padding { padding-right: 65px; width: 100%; }
.timer-absolute-text { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: #ef4444; font-size: 14px; font-weight: 700; pointer-events: none; z-index: 10; }
.btn-auth-submit { height: 50px; padding: 0 20px; font-size: 14px; white-space: nowrap; background: #059669; color: #fff; border: none; border-radius: 8px; font-weight: 600; cursor: pointer; }
.form-helper { display: block; margin-top: 8px; font-size: 13px; color: #64748b; }
.success-helper { color: #059669; font-weight: 500; }
.verified-success-text { color: #059669 !important; font-weight: 700 !important; }
.term-agree-box { margin-top: 35px; background: #f8fafc; padding: 20px; border-radius: 8px; border: 1px solid #e2e8f0; }
.checkbox-group { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.checkbox-group input[type="checkbox"] { width: 18px; height: 18px; margin: 0; cursor: pointer; flex-shrink: 0; accent-color: #059669; }
.checkbox-group label { cursor: pointer; font-size: 14px; color: #334155; font-weight: 500; line-height: 1.2; margin: 0; display: inline-flex; align-items: center; flex: 1 1 auto; min-width: 0; }
.main-agree-row label { font-weight: 700; color: #0f172a; font-size: 15px; }
.term-divider { border-top: 1px solid #e2e8f0; margin: 14px 0; }
.last-agree-row { margin-bottom: 0; }
.term-agree-row { flex-wrap: nowrap; align-items: center; }
.term-view-link { margin-left: auto; font-size: 13px; font-weight: 700; color: var(--fns-primary, #059669); text-decoration: none; white-space: nowrap; flex-shrink: 0; }
.term-view-link:hover { text-decoration: underline; }
.benefit-title { font-size: 18px; font-weight: 800; color: #0f172a; margin-top: 0; margin-bottom: 24px; }
.benefit-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 24px; }
.benefit-item { display: flex; align-items: flex-start; gap: 16px; }
.benefit-icon { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: #ecfdf5; color: #059669; border-radius: 8px; font-size: 16px; flex-shrink: 0; margin-top: 2px; }
.benefit-text { flex: 1; text-align: left; }
.benefit-text h4 { font-size: 15px; font-weight: 700; color: #1e293b; margin: 0 0 6px 0; }
.benefit-text p { font-size: 13px; color: #64748b; margin: 0; line-height: 1.5; }
.benefit-foot-notice { margin-top: 30px; background: rgba(5, 150, 105, 0.03); border: 1px dashed rgba(5, 150, 105, 0.2); padding: 18px; border-radius: 6px; text-align: center; }
.benefit-foot-notice p { font-size: 13px; color: #059669; font-weight: 700; margin: 0; letter-spacing: -0.5px; }
.biz-type-group { display: flex !important; gap: 12px !important; width: 100% !important; margin-top: 8px !important; }
.biz-type-btn { flex: 1 1 0% !important; height: 52px !important; border: 1px solid #cbd5e1 !important; border-radius: 8px !important; background: #ffffff !important; color: #475569 !important; font-size: 14px !important; font-weight: 600 !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: pointer !important; transition: all 0.2s ease !important; user-select: none !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; }
.biz-type-btn input[type="radio"] { display: none !important; }
.biz-type-btn.active { border: 2px solid #059669 !important; background-color: #ecfdf5 !important; color: #059669 !important; font-weight: 700 !important; }
.region-grid-select { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; width: 100%; margin-top: 8px; }
.region-btn { height: 42px; border: 1px solid #cbd5e1; border-radius: 8px; background: #ffffff; color: #475569; font-size: 13.5px; font-weight: 500; display: flex !important; align-items: center !important; justify-content: center !important; line-height: 1 !important; cursor: pointer; transition: all 0.2s ease; user-select: none; margin: 0; padding: 0 8px !important; text-align: center; box-sizing: border-box !important; }
.region-btn input[type="checkbox"] { display: none !important; }
.region-btn:has(input:checked) { border: 2px solid #059669 !important; background-color: #ecfdf5 !important; color: #059669 !important; font-weight: 700 !important; }
.category-grid-select { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 8px; }
.cat-checkbox-item { display: flex; align-items: center; gap: 10px; padding: 14px; border: 1px solid #cbd5e1; border-radius: 8px; background: #ffffff; cursor: pointer; box-sizing: border-box; transition: border-color 0.2s; }
.cat-checkbox-item:hover { border-color: #059669; }
.cat-checkbox-item input[type="checkbox"] { width: 18px; height: 18px; accent-color: #059669; flex-shrink: 0; margin: 0; cursor: pointer; }
.cat-checkbox-item span { font-size: 13.5px; font-weight: 600; color: #334155; line-height: 1.2; word-break: keep-all; }
.cat-checkbox-item:has(input:checked) { border: 2px solid #059669; background-color: #ecfdf5; }
.biz-info-layer.is-hidden { display: none; }
.step-btn-group { display: flex; gap: 12px; margin-top: 30px; }
.step-btn-group .btn-fns-submit { flex: 1; margin-top: 0; }
.join-complete-box { background: #ffffff; border: 1px solid var(--border-ui); border-radius: 12px; padding: 40px 30px; text-align: center; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05); }
.complete-status-badge { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; background-color: #ecfdf5; border-radius: 50%; color: #059669; font-size: 32px; margin-bottom: 20px; }
.complete-main-title { font-size: 24px; font-weight: 800; color: #1e293b; margin-bottom: 10px; word-break: keep-all; }
.complete-sub-desc { font-size: 15px; color: #64748b; line-height: 1.6; margin-bottom: 30px; word-break: keep-all; }
.complete-summary-card { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; padding: 20px; text-align: left; margin-bottom: 30px; }
.summary-card-title { font-size: 14.5px; font-weight: 700; color: #334155; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid #cbd5e1; display: flex; align-items: center; justify-content: space-between; }
.summary-status { font-size: 12px; color: #059669; font-weight: 700; }
.summary-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.summary-item { display: flex; justify-content: space-between; font-size: 14px; }
.summary-label { color: #64748b; font-weight: 500; }
.summary-val { color: #0f172a; font-weight: 600; text-align: right; }
.complete-process-timeline { display: flex; justify-content: space-between; align-items: center; background: #ffffff; border: 1px dashed #cbd5e1; border-radius: 10px; padding: 16px 20px; margin-bottom: 30px; }
.timeline-item { display: flex; flex-direction: column; align-items: center; gap: 6px; flex: 1; }
.timeline-icon { width: 36px; height: 36px; border-radius: 50%; background: #f1f5f9; color: #94a3b8; display: flex; align-items: center; justify-content: center; font-size: 14px; }
.timeline-item.active .timeline-icon { background: #059669; color: #ffffff; font-weight: 700; }
.timeline-text { font-size: 12.5px; color: #64748b; font-weight: 500; }
.timeline-item.active .timeline-text { color: #059669; font-weight: 700; }
.timeline-arrow { color: #cbd5e1; font-size: 12px; }
.complete-btn-group { display: flex; gap: 12px; }
.btn-home-link { flex: 1; height: 50px; background: #ffffff; border: 1px solid #cbd5e1; border-radius: 8px; color: #475569; font-size: 15px; font-weight: 700; display: flex; align-items: center; justify-content: center; text-decoration: none; transition: all 0.2s; }
.btn-home-link:hover { background: #f8fafc; color: #1e293b; }
.btn-dash-link { flex: 1.5; height: 50px; background: #059669; border: none; border-radius: 8px; color: #ffffff; font-size: 15px; font-weight: 700; display: flex; align-items: center; justify-content: center; text-decoration: none; transition: all 0.2s; }
.btn-dash-link:hover { background: #047857; }

/* 대시보드 */
.partner-container { max-width: 1200px; margin: 50px auto; padding: 0 20px; min-height: calc(100vh - 300px); }
.page-title-area { margin-bottom: 35px; display: flex; justify-content: space-between; align-items: center; }
.page-title-area h2 { font-size: 24px; color: var(--text-main); font-weight: 800; }
.page-title-area p { color: var(--text-sub); font-size: 14px; margin-top: 6px; }
.grid-layout { display: grid; gap: 24px; }
.grid-main-side { grid-template-columns: 2fr 1fr; }
.fns-card { background: var(--white); border-radius: 12px; border: 1px solid var(--border-ui); padding: 30px; }
.fns-card-title { font-size: 17px; font-weight: 700; color: var(--text-main); margin-bottom: 24px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--border-ui); padding-bottom: 16px; }
.order-list-item { border: 1px solid var(--border-ui); border-radius: 8px; padding: 24px; margin-bottom: 16px; background: var(--white); transition: 0.2s; }
.order-list-item:hover { border-color: var(--fns-primary); }
.status-badge { display: inline-block; padding: 4px 8px; border-radius: 4px; font-size: 12px; font-weight: 600; text-align: center; }
.dashboard-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 30px; }
.stat-card { background: var(--white); border: 1px solid var(--border-ui); border-radius: 8px; padding: 20px; display: flex; align-items: center; gap: 16px; }
.stat-hint { display: block; margin-top: 2px; font-size: 11px; font-weight: 500; color: #94a3b8; }
.stat-icon { width: 46px; height: 46px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 18px; }
.stat-icon.blue { background: rgba(2, 132, 199, 0.06); color: #0284c7; }
.stat-icon.green { background: rgba(5, 150, 105, 0.06); color: var(--fns-primary); }
.stat-icon.amber { background: rgba(180, 83, 9, 0.06); color: var(--fns-accent); }
.stat-info .stat-num { font-size: 22px; font-weight: 800; color: #0f172a; margin-top: 2px; }
.stat-info .stat-label { font-size: 13px; color: var(--text-sub); font-weight: 500; }
.stat-info .stat-unit { font-size: 13px; font-weight: 500; color: #64748b; margin-left: 3px; }
a.stat-card { text-decoration: none; color: inherit; transition: border-color 0.2s, box-shadow 0.2s; }
a.stat-card:hover { border-color: var(--fns-primary, #059669); box-shadow: 0 4px 12px rgba(5, 150, 105, 0.08); }
.page-title-dash { margin-bottom: 24px; }
.dash-main-col { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.dash-side-col { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.dash-panel { padding: 22px 24px 20px; }
.dash-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.dash-panel-head .profile-section-title { margin: 0; flex: 1; }
.dash-more-link { flex-shrink: 0; font-size: 13px; font-weight: 600; color: #64748b; text-decoration: none; white-space: nowrap; padding-top: 10px; }
.dash-more-link:hover { color: var(--fns-primary, #059669); }
.dash-more-link i { font-size: 10px; margin-left: 2px; }
.dash-job-card { padding: 16px 18px; margin: 0 0 12px; box-shadow: none; }
.dash-job-card:last-child { margin-bottom: 0; }
.dash-empty { padding: 36px 16px; border: none; background: #f8fafc; }
.dash-empty .btn-action-trigger { margin-top: 12px; }
.dash-side-card { padding: 20px; }
.dash-side-card .profile-section-title { margin-bottom: 14px; }
.dash-partner-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.dash-partner-head strong { font-size: 16px; color: #0f172a; }
.dash-partner-company { margin: 0 0 6px; font-size: 13px; color: #475569; }
.dash-partner-spec { margin: 0 0 16px; font-size: 13px; color: #64748b; line-height: 1.5; }
.dash-settle-note { font-size: 12.5px; color: #64748b; line-height: 1.5; margin: 12px 0 14px; }
.status-banner a { color: inherit; font-weight: 700; text-decoration: underline; white-space: nowrap; margin-left: 12px; }
.live-pulse-badge { display: inline-flex; align-items: center; gap: 6px; background: #f0fdf4; color: var(--fns-primary); border: 1px solid rgba(16, 185, 129, 0.2); padding: 4px 10px; border-radius: 20px; font-size: 12px; font-weight: 700; }
.pulse-dot { width: 7px; height: 7px; background: #10b981; border-radius: 50%; position: relative; }
.pulse-dot::after { content: ''; position: absolute; width: 100%; height: 100%; background: #10b981; border-radius: 50%; animation: pulse-ring 1.5s infinite ease-in-out; }
@keyframes pulse-ring { 0% { transform: scale(0.8); opacity: 0.5; } 100% { transform: scale(2.4); opacity: 0; } }

/* 의뢰 탐색 */
.search-filter-box { padding: 20px; margin-bottom: 24px; }
.search-filter-form { display: flex; flex-direction: column; gap: 16px; }
.search-main-row { display: flex; gap: 12px; flex-wrap: wrap; }
.search-input-wrap { flex: 1; min-width: 260px; position: relative; }
.search-keyword-input { width: 100%; height: 46px; padding: 0 16px; border: 1px solid var(--border-ui); border-radius: 6px; font-size: 14px; }
.search-select-wrap { width: 180px; min-width: 140px; }
.search-radius-select { width: 100%; height: 46px; padding: 0 12px; border: 1px solid var(--border-ui); border-radius: 6px; font-size: 14px; color: var(--text-main); background: #fff; }
.btn-search-submit { height: 46px; padding: 0 24px; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.category-filter-row { border-top: 1px dashed var(--border-ui); padding-top: 14px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.category-filter-label { font-size: 13px; font-weight: 700; color: var(--text-sub); }
.category-tag-group { display: flex; gap: 8px; flex-wrap: wrap; }
.category-tag-group .tag-btn { border: none; cursor: pointer; padding: 6px 12px; font-size: 12px; border-radius: 20px; }
.category-tag-group .tag-btn.active { background: var(--fns-primary); color: #fff; font-weight: 700; }
.category-tag-group .tag-btn:not(.active) { background: #f1f5f9; color: #475569; font-weight: 500; }
.order-list-repository { display: flex; flex-direction: column; gap: 16px; }
.search-result-count { font-size: 14px; color: var(--text-sub); font-weight: 500; margin-bottom: 4px; }
.search-result-count .highlight-count { color: var(--fns-primary); font-weight: 700; }
.search-card-pad { padding: 24px; margin-bottom: 0; }
.order-card-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 12px; }
.order-card-title { font-size: 17px; font-weight: 700; color: #0f172a; margin: 4px 0 0 0; }
.badge-emergency { background: #eff6ff; color: #1d4ed8; margin-bottom: 8px; }
.badge-assigned { background: #fef3c7; color: #d97706; margin-bottom: 8px; }
.badge-normal { background: #f1f5f9; color: #475569; margin-bottom: 8px; }
.order-card-price-zone { text-align: right; min-width: 130px; }
.order-card-price-zone .price-label { font-size: 12px; color: var(--text-sub); display: block; margin-bottom: 4px; }
.order-card-price-zone .price-value { font-size: 16px; color: var(--text-main); font-weight: 800; }
.order-card-price-zone .price-value-primary { font-size: 16px; color: var(--fns-primary); font-weight: 800; }
.order-card-desc { font-size: 13.5px; color: var(--text-sub); line-height: 1.6; margin-bottom: 20px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.order-card-footer { display: flex; justify-content: space-between; align-items: center; border-top: 1px dashed var(--border-ui); padding-top: 14px; font-size: 13px; color: var(--text-sub); flex-wrap: wrap; gap: 10px; }
.order-meta-info { display: flex; gap: 16px; }
.order-meta-info i { color: var(--fns-primary); }
.btn-order-action { height: 40px; padding: 0 20px; font-size: 13px; font-weight: 700; }
.btn-order-action.action-border { border-color: var(--fns-primary); color: var(--fns-primary); }
.category-filter-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.category-filter-nav .btn-filter { display: inline-flex; align-items: center; height: 36px; padding: 0 14px; border: 1px solid #e2e8f0; border-radius: 20px; background: #f8fafc; color: #475569; font-size: 13px; font-weight: 600; text-decoration: none; }
.category-filter-nav .btn-filter.active { background: var(--fns-primary, #059669); border-color: var(--fns-primary, #059669); color: #ffffff; }
.search-meta-summary { font-size: 14px; color: #64748b; margin-bottom: 16px; }
.search-meta-summary .highlight-count { color: var(--fns-primary, #059669); font-weight: 700; }
.search-meta-note { margin-left: 4px; font-size: 13px; color: #94a3b8; }
.align-start-line { align-items: start; }
.side-protection-banner { padding: 22px; background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%); color: #fff; border: none; }
.side-protection-banner .banner-sub { display: block; font-size: 12px; color: #6ee7b7; font-weight: 700; margin-bottom: 8px; }
.side-protection-banner .banner-main { font-size: 16px; font-weight: 800; color: #ffffff; margin: 0 0 10px; line-height: 1.4; }
.side-protection-banner .banner-desc { font-size: 13px; color: #cbd5e1; line-height: 1.55; margin: 0; }
.order-view-heading { margin-bottom: 20px; }
.order-photo-section { margin-top: 24px; }
.order-photo-section .fns-card-title { margin-bottom: 12px; border-bottom: none; padding-bottom: 0; }
.order-empty { background: #ffffff; border: 1px dashed #e2e8f0; border-radius: 12px; padding: 48px 20px; text-align: center; color: #64748b; }
.order-empty i { font-size: 28px; color: #cbd5e1; margin-bottom: 12px; }
.order-empty .btn-action-trigger { margin-top: 12px; display: inline-flex; }
.meta-info-group { display: flex; flex-wrap: wrap; gap: 10px 16px; }
.badge-direct { background: #fef3c7; color: #b45309; }
.status-badge { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 4px; font-size: 11.5px; font-weight: 700; }
.btn-action-trigger { height: 40px; padding: 0 16px; font-size: 13px; font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.btn-action-trigger.is-disabled { opacity: 0.55; pointer-events: none; }
.order-view-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.order-view-list li { display: flex; gap: 16px; font-size: 14px; }
.order-view-list .ov-label { width: 110px; flex-shrink: 0; color: #64748b; font-weight: 600; }
.order-view-list .ov-val { color: #0f172a; font-weight: 500; line-height: 1.5; }
.order-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin-top: 8px; }
.order-photo-grid img { width: 100%; height: 120px; object-fit: cover; border-radius: 8px; border: 1px solid #e2e8f0; }

/* 시공 관리 */
.page-title-const { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 20px; }
.status-summary-group { display: flex; gap: 8px; flex-shrink: 0; }
.badge-active-ing { background: #eff6ff; color: #1d4ed8; padding: 6px 12px; font-weight: 700; white-space: nowrap; display: inline-flex; align-items: center; }
.badge-active-done { background: #f0fdf4; color: #16a34a; padding: 6px 12px; font-weight: 700; white-space: nowrap; display: inline-flex; align-items: center; }
.construction-tab-nav { display: flex; border-bottom: 2px solid var(--border-ui); margin-bottom: 24px; gap: 24px; }
.construction-tab-nav .tab-link { padding: 12px 4px; font-size: 15px; color: var(--text-sub); text-decoration: none; margin-bottom: -2px; }
.construction-tab-nav .tab-link.active { font-weight: 700; color: var(--fns-primary); border-bottom: 2px solid var(--fns-primary); }
.construction-tab-nav .tab-count { font-size: 13px; font-weight: 500; opacity: 0.8; }
.construction-list-repository { display: flex; flex-direction: column; gap: 16px; }
.construction-item-card { padding: 24px; }
.construction-item-card.card-completed { opacity: 0.85; }
.const-card-header { display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 1px solid var(--border-ui); padding-bottom: 14px; margin-bottom: 16px; }
.badge-const-ready { background: #fdf2f8; color: #db2777; font-weight: 700; margin-bottom: 6px; }
.badge-const-paid { background: #f0fdf4; color: #16a34a; font-weight: 700; margin-bottom: 6px; }
.const-card-title { font-size: 17px; font-weight: 700; color: #0f172a; margin: 4px 0 0 0; }
.construction-item-card.card-completed .const-card-title { font-size: 16px; color: #475569; }
.const-card-price-zone { text-align: right; }
.const-card-price-zone .price-label { font-size: 12px; color: var(--text-sub); display: block; margin-bottom: 2px; }
.const-card-price-zone .price-value { font-size: 16px; color: var(--text-main); font-weight: 800; }
.const-card-price-zone .price-value-done { font-size: 15px; color: #16a34a; font-weight: 700; }
.const-detail-spec { display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; color: #475569; margin-bottom: 20px; }
.const-detail-spec .spec-row { display: flex; }
.const-detail-spec .spec-label { color: var(--text-sub); width: 80px; display: inline-block; flex-shrink: 0; }
.const-detail-spec .spec-value-emp { color: #0f172a; }
.const-detail-spec .spec-value-text { color: #0f172a; }
.const-history-info { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--text-sub); }
.const-history-info .history-row { display: flex; }
.const-history-info .history-label { width: 80px; display: inline-block; flex-shrink: 0; }
.const-card-footer { display: flex; justify-content: space-between; align-items: center; border-top: 1px dashed var(--border-ui); padding-top: 16px; }
.const-footer-notice { font-size: 12.5px; color: var(--fns-primary); font-weight: 600; }
.const-action-buttons { display: flex; gap: 8px; }
.btn-const-nav { height: 38px; padding: 0 14px; font-size: 13px; }
.btn-const-action { height: 38px; padding: 0 16px; font-size: 13px; font-weight: 700; }
.job-view-actions { margin-top: 24px; flex-wrap: wrap; }
.btn-assign-requested { cursor: default; pointer-events: none; opacity: 0.85; }
.job-split { display: grid; grid-template-columns: minmax(260px, 340px) 1fr; gap: 20px; align-items: start; }
.job-side-card, .job-main-card { padding: 24px; }
.job-textarea { min-height: 100px; resize: vertical; }
.quote-table-wrap { overflow-x: auto; margin: 8px 0 16px; }
.quote-item-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.quote-item-table th { text-align: left; padding: 8px 6px; color: #64748b; font-weight: 600; border-bottom: 1px solid var(--border-ui); }
.quote-item-table td { padding: 6px 4px; vertical-align: middle; }
.quote-item-table .form-control { width: 100%; min-width: 0; }
.btn-row-del { height: 36px; padding: 0 10px; border: 1px solid #fecaca; background: #fff; color: #dc2626; border-radius: 6px; font-size: 12px; cursor: pointer; }
.btn-add-row { margin-top: 8px; }
.quote-total-box { background: #f8fafc; border-radius: 8px; padding: 14px 16px; margin-bottom: 20px; }
.quote-total-box p { margin: 0 0 6px; font-size: 14px; color: #475569; display: flex; justify-content: space-between; }
.quote-total-box p:last-child { margin-bottom: 0; font-weight: 700; color: #0f172a; }
.schedule-time-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.schedule-time-row .form-control { width: auto; min-width: 88px; }
.report-img-exist, .report-upload-slot { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.report-img-exist img, .report-upload-slot .slot-preview { width: 64px; height: 64px; object-fit: cover; border-radius: 6px; border: 1px solid #e2e8f0; }
.report-img-exist span { font-size: 13px; color: #475569; flex: 1; word-break: break-all; }
.report-del-label { font-size: 13px; color: #dc2626; cursor: pointer; white-space: nowrap; }
.report-slot-list { display: flex; flex-direction: column; gap: 6px; }

/* 정산 / 매출 */
.page-title-settle { margin-bottom: 24px; }
.settle-summary-grid { display: flex; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.settle-summary-card { flex: 1; min-width: 280px; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; }
.settle-summary-card.card-highlight { background: #f8fafc; border: 1px solid var(--fns-primary); }
.settle-card-label { font-size: 14px; font-weight: 700; color: var(--text-sub); display: flex; align-items: center; gap: 6px; }
.settle-card-label .icon-tip { color: #94a3b8; cursor: help; }
.settle-card-value-zone { margin: 14px 0; }
.settle-price { font-size: 28px; font-weight: 800; color: #0f172a; line-height: 1; }
.settle-price.text-pending { color: #475569; }
.settle-price.text-done { color: var(--fns-primary); }
.settle-unit { font-size: 16px; font-weight: 700; color: var(--text-main); margin-left: 4px; }
.settle-card-action { margin-top: 10px; }
.btn-settle-withdraw { width: 100%; height: 42px; font-weight: 700; font-size: 14px; justify-content: center; display: inline-flex; align-items: center; text-decoration: none; box-sizing: border-box; }
.settle-card-desc { font-size: 13px; color: #64748b; line-height: 1.4; margin: 0; }
.settle-history-repository { display: flex; flex-direction: column; gap: 16px; }
.settle-list-title-zone { display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 1px solid var(--border-ui); padding-bottom: 12px; }
.settle-list-title-zone h3 { font-size: 16px; font-weight: 700; color: #0f172a; margin: 0; }
.settle-list-count { font-size: 13px; color: var(--text-sub); }
.settle-table-responsive { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--border-ui); border-radius: 6px; }
.settle-data-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 13.5px; min-width: 650px; }
.settle-data-table th { background: #f8fafc; padding: 12px 16px; font-weight: 700; color: #475569; border-bottom: 1px solid var(--border-ui); }
.settle-data-table td { padding: 14px 16px; border-bottom: 1px solid var(--border-ui); color: var(--text-main); vertical-align: middle; }
.settle-data-table tbody tr:last-child td { border-bottom: none; }
.cell-date { color: var(--text-sub); font-size: 13px; white-space: nowrap; }
.cell-type { white-space: nowrap; }
.badge-type { padding: 4px 8px; font-size: 11px; font-weight: 700; border-radius: 4px; }
.badge-type.type-settle { background: #eff6ff; color: #1d4ed8; }
.badge-type.type-out { background: #f1f5f9; color: #475569; }
.cell-subject { font-weight: 500; word-break: break-all; min-width: 200px; }
.cell-subject a { color: inherit; text-decoration: none; font-weight: 600; }
.cell-subject a:hover { color: var(--fns-primary); text-decoration: underline; }
.settle-row-no { display: block; margin-top: 4px; font-size: 12px; font-weight: 500; color: #94a3b8; }
.cell-amount { text-align: right; white-space: nowrap; font-size: 14px; }
.cell-amount.text-danger { color: #df1c1c; }
.cell-status { text-align: center; white-space: nowrap; }

/* 프로필 */
.profile-form-repository { display: flex; flex-direction: column; }
.profile-main-form { display: flex; flex-direction: column; gap: 24px; }
.page-header { margin-bottom: 24px; }
.page-title { font-size: 22px; font-weight: 800; color: #0f172a; margin-bottom: 4px; }
.page-subtitle { font-size: 14px; color: #64748b; margin: 0; }
.alert-message { padding: 14px 20px; border-radius: 8px; margin-bottom: 24px; font-size: 14px; font-weight: 600; display: flex; align-items: center; gap: 10px; }
.alert-message[hidden] { display: none !important; }
.alert-success { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; }
.alert-error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.status-banner { padding: 16px 20px; border-radius: 10px; margin-bottom: 24px; font-size: 14px; display: flex; align-items: center; justify-content: space-between; }
.banner-approved { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; }
.banner-rejected { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; flex-direction: column; align-items: flex-start; }
.banner-pending { background: #fffbe2; border: 1px solid #ffe58f; color: #873800; }
.reject-reason { margin-top: 8px; padding-top: 8px; border-top: 1px dashed #fca5a5; font-size: 13px; width: 100%; }
.badge-approved { background: #22c55e; color: #ffffff; padding: 4px 10px; border-radius: 12px; font-size: 12px; font-weight: 700; }
.profile-card, .profile-section-card { background: #ffffff; border: 1px solid var(--border-ui, #e2e8f0); border-radius: 12px; padding: 24px; margin-bottom: 24px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02); }
.profile-card-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 14px; margin-bottom: 20px; border-bottom: 1px solid var(--border-ui, #f1f5f9); }
.profile-card-header h3, .profile-card-title { font-size: 16px; font-weight: 700; color: #0f172a; margin: 0; display: flex; align-items: center; gap: 8px; }
.icon-blue { color: #2563eb; }
.icon-sky { color: #0284c7; }
.icon-green { color: #059669; }
.icon-margin { margin-right: 8px; }
.required-star { color: #ef4444; }
.form-group-stack { display: flex; flex-direction: column; gap: 20px; }
.form-row { display: flex; flex-direction: column; gap: 8px; width: 100%; box-sizing: border-box; }
.form-row-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; width: 100%; }
.form-row-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px 16px; margin-bottom: 0; width: 100%; }
.profile-page .status-banner { padding: 10px 16px; margin-bottom: 16px; }
.profile-shell { display: grid; grid-template-columns: 280px 1fr; background: #ffffff; border: 1px solid var(--border-ui, #e2e8f0); border-radius: 12px; overflow: hidden; }
.profile-aside { padding: 24px; border-right: 1px solid #f1f5f9; background: #fafbfc; }
.profile-main { padding: 28px 40px 36px; min-width: 0; }
.profile-page .form-row-grid { gap: 18px 28px; }
.profile-page .form-group { gap: 4px; }
.profile-page .form-group > label { margin-bottom: 0; font-size: 13px; font-weight: 600; }
.profile-section-title { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: #0f172a; margin: 0 0 14px; padding: 9px 12px; background: #f1f5f9; border-radius: 8px; border-left: 3px solid var(--fns-primary, #059669); }
.profile-section-title i { color: var(--fns-primary, #059669); font-size: 13px; width: 16px; text-align: center; }
.profile-main .profile-section-title { margin-top: 28px; margin-bottom: 14px; }
.profile-main .profile-section-title:first-child { margin-top: 0; }
.profile-main > .form-group { margin-bottom: 16px; }
.profile-aside .profile-section-title { margin-top: 24px; }
.profile-aside .profile-section-title:first-child { margin-top: 0; }
.profile-photo-box { display: flex; flex-direction: column; gap: 12px; }
.profile-photo-frame { position: relative; width: 100%; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: #f1f5f9; }
.profile-photo-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.profile-photo-placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #94a3b8; font-size: 48px; }
.profile-photo-placeholder[hidden] { display: none !important; }
.profile-photo-clear { position: absolute; top: 8px; right: 8px; width: 28px; height: 28px; border: none; border-radius: 50%; background: rgba(15, 23, 42, 0.72); color: #fff; font-size: 18px; line-height: 1; cursor: pointer; }
.profile-photo-clear[hidden] { display: none !important; }
.btn-photo-upload { width: 100%; height: 42px; justify-content: center; position: relative; overflow: hidden; }
.btn-photo-upload input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.profile-aside-hint { font-size: 12px; color: #94a3b8; line-height: 1.45; margin: 0; }
.profile-aside .form-group { margin-bottom: 12px; }
.profile-page .form-group[hidden] { display: none !important; }
.profile-span-2 { grid-column: 1 / -1; }
.profile-file-meta { justify-content: center; }
.profile-intro { height: auto; min-height: 120px; padding: 12px 14px; resize: vertical; line-height: 1.5; }
.profile-main-foot { display: flex; justify-content: flex-end; margin-top: 8px; padding-top: 20px; border-top: 1px solid #f1f5f9; }
.profile-main-foot .btn-fns-submit { width: auto; min-width: 140px; margin-top: 0; }
.profile-page .form-control { height: 42px; font-size: 14px; padding: 0 12px; }
.profile-page .category-grid-select { grid-template-columns: repeat(4, 1fr); gap: 8px; }
.profile-page .form-group label.cat-checkbox-item { padding: 8px 10px; }
.profile-page .region-grid-select { gap: 6px; }
.profile-page .region-btn { height: 36px; font-size: 13px; }
.profile-page .form-group { margin-bottom: 0; }
.form-group { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.form-group-bottom { margin-bottom: 0; }
.form-group-spacing { margin-bottom: 24px; }
.form-label, .form-group label { font-size: 13.5px; font-weight: 600; color: #334155; }
.form-group label.cat-checkbox-item { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 10px; margin: 0; padding: 14px; font-size: 13.5px; font-weight: 600; line-height: 1; }
.form-group label.cat-checkbox-item input[type="checkbox"] { width: 18px; height: 18px; margin: 0; padding: 0; flex-shrink: 0; align-self: center; }
.form-group label.cat-checkbox-item span { display: flex; align-items: center; margin: 0; line-height: 1; padding: 0; }
.form-control-input { width: 100%; height: 42px; padding: 0 12px; border: 1px solid var(--border-ui, #cbd5e1); border-radius: 6px; font-size: 14px; color: var(--text-main, #0f172a); outline: none; box-sizing: border-box; transition: border-color 0.2s; background-color: #ffffff; }
.form-control-input:focus { border-color: var(--border-focus, #2563eb); }
.form-control-input[readonly] { background-color: #f8fafc; color: #64748b; cursor: not-allowed; }
.form-control-select { width: 100%; height: 42px; padding: 0 12px; border: 1px solid var(--border-ui, #cbd5e1); border-radius: 6px; font-size: 14px; color: var(--text-main, #0f172a); background: #ffffff; box-sizing: border-box; transition: border-color 0.2s; }
.form-control-select:focus { border-color: var(--border-focus, #2563eb); outline: none; }
.input-helper-text { font-size: 12px; color: #94a3b8; margin: 0; }
.row-profile-img { display: flex; flex-direction: column; gap: 10px; }
.profile-img-upload-box { display: flex; align-items: center; gap: 18px; background: #f8fafc; padding: 16px; border-radius: 8px; border: 1px dashed var(--border-ui, #cbd5e1); }
.profile-avatar-preview { width: 64px; height: 64px; background: #e2e8f0; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #64748b; flex-shrink: 0; overflow: hidden; }
.profile-avatar-preview img { width: 100%; height: 100%; object-fit: cover; }
.upload-btn-wrap { display: flex; flex-direction: column; gap: 6px; }
.input-file-hidden { display: none !important; }
.btn-upload-trigger { height: 32px; padding: 0 12px; font-size: 12.5px; font-weight: 700; display: inline-flex; align-items: center; width: max-content; cursor: pointer; background: #ffffff; border: 1px solid var(--border-ui, #cbd5e1); border-radius: 4px; transition: all 0.2s; }
.btn-upload-trigger:hover { background: #f1f5f9; }
.upload-tip { font-size: 11.5px; color: #94a3b8; margin: 0; }
.form-checkbox-group { display: flex; flex-wrap: wrap; gap: 10px; }
.checkbox-item { display: flex; align-items: center; gap: 6px; background: #ffffff; border: 1px solid var(--border-ui, #cbd5e1); padding: 8px 14px; border-radius: 6px; font-size: 13px; color: #475569; cursor: pointer; transition: all 0.2s; }
.checkbox-item input[type="checkbox"] { margin: 0; width: 16px; height: 16px; accent-color: var(--fns-primary, #2563eb); cursor: pointer; }
.checkbox-item:hover { border-color: var(--fns-primary, #2563eb); }
.chip-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.chip-item { position: relative; }
.chip-item input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; }
.chip-label { display: inline-block; padding: 8px 14px; background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 20px; font-size: 13px; font-weight: 500; color: #475569; cursor: pointer; user-select: none; transition: all 0.2s; }
.chip-item input[type="checkbox"]:checked + .chip-label { background: #eff6ff; border-color: #2563eb; color: #1d4ed8; font-weight: 700; }
.file-upload-box { border: 1px dashed var(--border-ui, #cbd5e1); border-radius: 8px; padding: 16px; background: #fafafa; display: flex; align-items: center; justify-content: space-between; }
.file-help-text { font-size: 12px; color: #64748b; margin-top: 4px; }
.file-link { font-size: 13px; color: #2563eb; font-weight: 600; text-decoration: underline; }
.escrow-notice-box { font-size: 13px; color: #64748b; line-height: 1.5; margin-bottom: 16px; background: #f8fafc; padding: 12px; border-radius: 6px; }
.profile-submit-zone, .form-submit-area { text-align: center; margin-top: 32px; }
.btn-profile-save, .btn-submit-primary { height: 48px; padding: 0 36px; background: var(--fns-primary, #2563eb); color: #ffffff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer; box-shadow: 0 4px 6px -1px rgba(37, 99, 235, 0.2); transition: background 0.2s; }
.btn-profile-save:hover, .btn-submit-primary:hover { background: var(--fns-primary-hover, #1d4ed8); }

/* 사이드 카드 */
.side-banner-stack { display: flex; flex-direction: column; gap: 24px; }
.side-guide-card { padding: 24px; }
.side-guide-title { margin-bottom: 14px; padding-bottom: 10px; }
.side-guide-title .icon-guide { color: #eab308; }
.side-guide-title .icon-alert { color: #f59e0b; }
.guide-bullet-list { font-size: 13px; color: var(--text-sub); padding-left: 18px; margin: 0; display: flex; flex-direction: column; gap: 10px; line-height: 1.5; }
.side-campaign-banner { padding: 24px; background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%); color: #fff; border: none; }
.side-campaign-banner .campaign-sub { font-size: 12px; color: var(--fns-primary); font-weight: 700; margin-bottom: 6px; }
.side-campaign-banner .campaign-title { font-size: 15px; font-weight: 700; color: #fff; margin-bottom: 10px; line-height: 1.4; }
.side-campaign-banner .campaign-desc { font-size: 12.5px; color: #94a3b8; line-height: 1.5; margin-bottom: 0; }
.side-hotline-card { padding: 20px; background: #f8fafc; text-align: center; }
.side-hotline-card .hotline-desc { font-size: 13px; color: var(--text-sub); margin-bottom: 8px; }
.side-hotline-card .hotline-title { font-size: 18px; font-weight: 800; color: var(--text-main); margin-bottom: 4px; }
.side-hotline-card .icon-headset { color: var(--fns-primary); }
.side-hotline-card .hotline-number { font-size: 16px; color: var(--fns-primary); text-decoration: none; font-weight: 700; display: inline-block; }
.icon-settle-info { color: var(--fns-primary); }
.side-account-card { padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.account-info-box { display: flex; flex-direction: column; gap: 4px; }
.account-label { font-size: 12px; color: var(--text-sub); }
.account-number { font-size: 15px; font-weight: 700; color: #0f172a; }
.account-holder { font-size: 12.5px; color: var(--text-sub); }
.btn-account-change { width: 100%; height: 38px; font-size: 13px; justify-content: center; display: inline-flex; align-items: center; text-decoration: none; box-sizing: border-box; }
.icon-profile-shield { color: var(--fns-primary); }
.side-badge-status-card { padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.badge-avatar-row { display: flex; align-items: center; gap: 12px; }
.badge-icon-gold { width: 44px; height: 44px; background: #fef3c7; color: #d97706; font-size: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.badge-grade-title { font-size: 15px; font-weight: 700; color: #0f172a; }
.badge-grade-score { font-size: 12.5px; color: #64748b; margin-top: 2px; }
.badge-upgrade-criteria { background: #f8fafc; padding: 12px; border-radius: 6px; font-size: 12px; color: #64748b; line-height: 1.4; }

/* 의뢰 탐색 카드 (order_search.php) */
.order-filter-card { background: #ffffff; border: 1px solid var(--border-ui, #e2e8f0); border-radius: 12px; padding: 20px; margin-bottom: 24px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02); }
.filter-row-grid { display: grid; grid-template-columns: 1fr 1fr 2fr 120px; gap: 12px; align-items: end; }
.margin-none { margin-bottom: 0 !important; }
.filter-btn-wrap { display: flex; align-items: flex-end; }
.btn-filter-submit { width: 100%; height: 42px; background: var(--fns-primary, #2563eb); color: #ffffff; border: none; border-radius: 6px; font-size: 14px; font-weight: 700; cursor: pointer; transition: background 0.2s; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.btn-filter-submit:hover { background: var(--fns-primary-hover, #1d4ed8); }
.order-list-info { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; font-size: 14px; color: #475569; }
.total-count strong { color: var(--fns-primary, #2563eb); font-weight: 700; }
.form-control-select-sm { height: 36px; padding: 0 10px; border: 1px solid var(--border-ui, #cbd5e1); border-radius: 6px; font-size: 13px; color: #0f172a; outline: none; background: #ffffff; }
.order-card-grid { display: flex; flex-direction: column; gap: 16px; }
.order-item-card { background: #ffffff; border: 1px solid var(--border-ui, #e2e8f0); border-radius: 12px; padding: 20px; transition: all 0.2s ease; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02); }
.order-item-card:hover { border-color: #3b82f6; box-shadow: 0 4px 12px rgba(37, 99, 235, 0.08); }
.order-card-top { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.order-badge { padding: 4px 8px; border-radius: 4px; font-size: 11.5px; font-weight: 700; }
.badge-urgent { background: #fef2f2; color: #ef4444; border: 1px solid #fecaca; }
.badge-new { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.badge-assign-req { background: #eff6ff; color: #1d4ed8; margin-bottom: 8px; }
.badge-category { background: #f1f5f9; color: #475569; }
.order-date { font-size: 12.5px; color: #94a3b8; margin-left: auto; }
.order-title { font-size: 17px; font-weight: 700; margin: 0 0 8px 0; line-height: 1.4; }
.order-title a { color: #0f172a; text-decoration: none; transition: color 0.2s; }
.order-title a:hover { color: var(--fns-primary, #2563eb); }
.order-excerpt { font-size: 14px; color: #475569; line-height: 1.5; margin: 0 0 16px 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.order-spec-tags { display: flex; flex-wrap: wrap; gap: 12px; }
.spec-tag { font-size: 13px; color: #64748b; background: #f8fafc; padding: 6px 12px; border-radius: 6px; display: inline-flex; align-items: center; gap: 6px; }
.order-card-bottom { display: flex; align-items: center; justify-content: space-between; padding-top: 16px; margin-top: 16px; border-top: 1px solid #f1f5f9; }
.bid-status-info { font-size: 13.5px; color: #64748b; }
.text-blue { color: var(--fns-primary, #2563eb); font-weight: 700; }
.btn-order-detail { padding: 8px 18px; background: #ffffff; border: 1px solid var(--border-ui, #cbd5e1); border-radius: 6px; font-size: 13.5px; font-weight: 700; color: #334155; text-decoration: none; transition: all 0.2s; }
.btn-order-detail:hover { background: #f8fafc; border-color: var(--fns-primary, #2563eb); color: var(--fns-primary, #2563eb); }

/* 파트너 전용 약관 */
.partner-legal-wrap { max-width: 880px; margin: 40px auto 80px; padding: 0 20px; box-sizing: border-box; }
.partner-legal-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.partner-legal-tab { display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border-radius: 20px; background: #f1f5f9; color: #64748b; font-size: 14px; font-weight: 600; text-decoration: none; }
.partner-legal-tab.active { background: var(--fns-primary, #059669); color: #ffffff; }
.partner-legal-tab:hover { color: var(--fns-primary, #059669); }
.partner-legal-tab.active:hover { color: #ffffff; }
.partner-legal-card { padding: 36px; }
.partner-legal-title { font-size: 22px; font-weight: 800; color: #0f172a; margin: 0 0 20px; padding-bottom: 16px; border-bottom: 2px solid #0f172a; }
.partner-legal-empty { font-size: 15px; color: #64748b; line-height: 1.7; margin: 0; }
.partner-legal-toc { display: flex; flex-wrap: wrap; gap: 8px 10px; margin: 0 0 28px; padding: 14px 16px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; }
.partner-legal-toc a { font-size: 13px; color: #475569; text-decoration: none; font-weight: 600; }
.partner-legal-toc a:hover { color: var(--fns-primary, #059669); }
.partner-legal-lead { font-size: 15px; color: #334155; line-height: 1.75; margin: 0 0 28px; }
.partner-legal-body section { margin-bottom: 28px; scroll-margin-top: 88px; }
.partner-legal-body h2 { font-size: 16px; font-weight: 800; color: #0f172a; margin: 0 0 10px; }
.partner-legal-body p, .partner-legal-body li { font-size: 14.5px; color: #334155; line-height: 1.75; }
.partner-legal-body p { margin: 0 0 8px; }
.partner-legal-body ol, .partner-legal-body ul { margin: 0; padding-left: 1.25em; }
.partner-legal-body li { margin-bottom: 6px; }
.partner-legal-body a { color: var(--fns-primary, #059669); font-weight: 600; text-decoration: none; }
.partner-legal-body a:hover { text-decoration: underline; }
.partner-legal-addendum { margin-top: 12px; padding-top: 20px; border-top: 1px solid #e2e8f0; }
.partner-legal-addendum h2 { font-size: 15px; }
