.co-admin-partner-modal .co-modal-panel {
    width: min(1060px, calc(100vw - 32px));
    max-height: calc(100vh - 24px);
}

.co-admin-partner-modal .co-modal-head,
.co-admin-partner-modal .co-form-actions {
    position: sticky;
    z-index: 5;
    background: #fff;
}

.co-admin-partner-modal .co-modal-head { top: 0; }
.co-admin-partner-modal .co-form-actions { bottom: 0; border-top: 1px solid #dbe4e6; padding-top: 16px; }

[data-editor-errors] {
    display: none;
    margin: 0 0 16px;
    padding: 12px 14px;
    border: 1px solid #e8b5aa;
    border-radius: 10px;
    color: #9a382a;
    background: #fff4f1;
}

[data-editor-errors]:not(:empty) { display: block; }

.co-editor-inline {
    display: flex;
    align-items: stretch;
    gap: 8px;
}

.co-editor-inline input { min-width: 0; flex: 1; }
.co-editor-inline .co-button { flex: 0 0 auto; white-space: nowrap; }

.co-address-public-field { display: flex; flex-direction: column; gap: 8px; }
.co-profile-field-label { color: #243b3e; font-size: 14px; font-weight: 700; }
.co-address-public-value {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid #d7e0e1;
    border-radius: 10px;
    color: #183b3d;
    background: #f4f7f6;
    font-weight: 650;
}
.co-address-public-value:empty::before { content: '주소 검색 후 자동 표시됩니다.'; color: #718083; font-weight: 500; }

[data-login-result].is-success { color: #087663; }
[data-login-result].is-error { color: #b33b2e; }

.co-industry-select { min-height: 48px; }
.co-editor-detail-description { min-height: 240px; resize: vertical; }

.co-region-picker { margin-top: 14px; }
.co-region-controls {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(220px, 1.4fr) auto;
    align-items: end;
    gap: 12px;
}

.co-region-selected {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-height: 48px;
    margin-top: 12px;
    padding: 10px;
    border: 1px dashed #b9c9cc;
    border-radius: 12px;
    background: #f7faf9;
}

.co-region-selected:empty::before {
    content: '선택한 서비스 지역이 여기에 표시됩니다.';
    align-self: center;
    color: #718083;
    font-size: 13px;
}

.co-region-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 32px;
    padding: 5px 7px 5px 11px;
    border: 1px solid #bad1d4;
    border-radius: 999px;
    color: #174f56;
    background: #edf7f6;
    font-size: 13px;
    font-weight: 700;
}

.co-region-chip.is-legacy { border-color: #e7cf91; color: #7c5b11; background: #fff8e5; }
.co-region-chip button { width: 24px; height: 24px; border: 0; border-radius: 50%; color: inherit; background: rgba(255,255,255,.75); cursor: pointer; }
.co-field-help { margin: 8px 0 0; color: #617174; font-size: 13px; line-height: 1.5; }
.co-field-help.is-error { color: #b33b2e; }

.co-photo-section + .co-photo-section { margin-top: 22px; }
.co-photo-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 10px; }
.co-photo-heading strong, .co-photo-heading small { display: block; }
.co-photo-heading small { margin-top: 4px; color: #667679; line-height: 1.45; }
.co-photo-board { padding: 12px; border: 1px dashed #9db9bd; border-radius: 14px; background: #f7fbfb; transition: border-color .15s, background .15s; }
.co-photo-board.is-dragover { border-color: #0c6d78; background: #eaf7f6; }
.co-photo-slots { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.co-photo-board.is-representative .co-photo-slots { grid-template-columns: minmax(220px, 340px); }

.co-photo-slot {
    position: relative;
    min-height: 140px;
    overflow: hidden;
    border: 1px solid #d5e0e2;
    border-radius: 12px;
    background: #fff;
}

.co-photo-slot.is-empty { display: grid; place-items: center; border-style: dashed; cursor: pointer; }
.co-photo-slot.is-empty button { width: 100%; min-height: 140px; padding: 12px; border: 0; color: #476267; background: transparent; cursor: pointer; font: inherit; }
.co-photo-slot img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #e8eeee; }
.co-photo-board.is-representative .co-photo-slot img { aspect-ratio: 16 / 10; }
.co-photo-meta { padding: 8px 9px 9px; }
.co-photo-name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #273b3e; font-size: 12px; }
.co-photo-warning { display: block; min-height: 18px; margin-top: 3px; color: #a66b00; font-size: 11px; }
.co-photo-actions { display: flex; gap: 5px; margin-top: 7px; }
.co-photo-actions button { flex: 1; min-height: 30px; padding: 3px 5px; border: 1px solid #c9d7d9; border-radius: 7px; color: #345158; background: #fff; cursor: pointer; font-size: 11px; }
.co-photo-actions button[data-photo-remove] { color: #a33b31; border-color: #e5bbb5; }
.co-photo-actions button:disabled { opacity: .4; cursor: default; }

.co-postcode-layer { position: fixed; z-index: 2000; inset: 0; padding: 18px; background: rgba(13, 35, 39, .62); }
.co-postcode-layer:not([hidden]) { display: grid; place-items: center; }
.co-postcode-dialog { width: min(520px, 100%); height: min(620px, calc(100vh - 36px)); overflow: hidden; border-radius: 14px; background: #fff; box-shadow: 0 24px 70px rgba(0,0,0,.28); }
.co-postcode-head { display: flex; align-items: center; justify-content: space-between; height: 52px; padding: 0 16px; border-bottom: 1px solid #dce5e6; }
.co-postcode-head button { width: 34px; height: 34px; border: 0; border-radius: 50%; background: #edf2f2; cursor: pointer; font-size: 24px; }
[data-postcode-embed] { height: calc(100% - 52px); }

@media (max-width: 760px) {
    .co-admin-partner-modal .co-modal-panel { width: calc(100vw - 12px); max-height: calc(100vh - 12px); }
    .co-editor-inline { flex-wrap: wrap; }
    .co-editor-inline .co-button { width: 100%; }
    .co-region-controls { grid-template-columns: 1fr; }
    .co-region-controls .co-button { width: 100%; }
    .co-photo-heading { align-items: stretch; flex-direction: column; }
    .co-photo-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .co-photo-board.is-representative .co-photo-slots { grid-template-columns: 1fr; }
    .co-photo-slot, .co-photo-slot.is-empty button { min-height: 128px; }
    .co-postcode-layer { padding: 6px; }
    .co-postcode-dialog { height: calc(100vh - 12px); }
}
