/* =========================================================
   Pyon Partner Center CSS (Bootstrap-friendly)
   Path: /partner/assets/partner.css
   ========================================================= */

/* ---------- Theme Tokens ---------- */
:root{
    --brand: #187196;             /* 파이온 파트너 메인 컬러 */
    --brand-2: #3A6F8B;           /* 보조 컬러 */
    --brand-3: #8D5F8C;           /* 포인트 컬러(배너용) */
    --bg: #ffffff;
    --fg: #0f172a;
    --muted: #6b7280;
    --line: #e5e7eb;
    --card: #ffffff;
    --shadow: 0 8px 24px rgba(0,0,0,.07);
    --radius: 16px;
}

@media (prefers-color-scheme: dark){
    :root{
        --bg: #0b1220;
        --fg: #e5e7eb;
        --muted: #94a3b8;
        --line: #1e293b;
        --card: #0f172a;
        --shadow: 0 8px 24px rgba(0,0,0,.35);
    }
    .bg-light{ background-color: #0f172a !important; }
    .bg-white{ background-color: var(--card) !important; }
}

/* ---------- Global ---------- */
html,body{
    background: var(--bg);
    color: var(--fg);
}
.container { max-width: 1120px; }

a, .link-primary{
    color: var(--brand);
}
a:hover, .link-primary:hover{
    color: #145a77;
}

/* ---------- Header / Topbar ---------- */
.app-header{
    background: var(--card);
    border-bottom: 1px solid var(--line);
    position: sticky;
    top: 0;
    z-index: 1030;
}
.app-header .h5{ color: var(--fg); }

.nav.nav-underline .nav-link{
    color: var(--muted);
    border: none;
    margin-right: .5rem;
    padding: .75rem .5rem;
}
.nav.nav-underline .nav-link:hover{ color: var(--fg); }
.nav.nav-underline .nav-link.active{
    color: var(--brand);
    border-bottom: 2px solid var(--brand);
}

/* ---------- Cards ---------- */
.card{
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}
.card-title{ font-weight: 700; }

.card-brand{
    background: linear-gradient(180deg, rgba(24,113,150,.08), transparent 60%);
    border-color: rgba(24,113,150,.25);
}
.card-compact .card-body{ padding: 0.75rem 1rem; }

/* KPI / 통계 카드 */
.stat-card .value{
    font-size: 1.75rem;
    font-weight: 800;
    line-height: 1.1;
}
.stat-card .label{
    color: var(--muted);
    font-size: .9rem;
}

/* ---------- Tables ---------- */
.table-partner{
    --row-bg: transparent;
    --row-hover: rgba(24,113,150,.06);
    --head-bg: rgba(0,0,0,.02);
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) - 2px);
    overflow: hidden;
}
.table-partner thead th{
    background: var(--head-bg);
    color: var(--muted);
    font-weight: 700;
    font-size: .9rem;
    border-bottom: 1px solid var(--line);
    padding: .9rem .95rem;
    position: sticky;
    top: 0;
    z-index: 1;
}
.table-partner tbody td{
    padding: .8rem .95rem;
    border-bottom: 1px solid var(--line);
}
.table-partner tbody tr{ background: var(--row-bg); }
.table-partner tbody tr:hover{ background: var(--row-hover); }

.table-partner .cell-actions{
    white-space: nowrap;
    text-align: right;
}

/* ---------- Forms ---------- */
.form-control, .form-select{
    border-radius: 12px;
    border-color: var(--line);
}
.form-control:focus, .form-select:focus{
    border-color: var(--brand);
    box-shadow: 0 0 0 .2rem rgba(24,113,150,.15);
}
.form-label{ font-weight: 600; }

/* Inline fieldset group */
.fieldset{
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: .75rem 1rem;
    align-items: center;
}
@media (max-width: 576px){
    .fieldset{ grid-template-columns: 1fr; }
}

/* ---------- Status / Chips ---------- */
.chip{
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .25rem .6rem;
    border-radius: 999px;
    font-size: .82rem;
    line-height: 1.2;
    border: 1px solid var(--line);
    background: rgba(0,0,0,.02);
}
.chip i{
    display: inline-block;
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
}
.chip.brand{ border-color: rgba(24,113,150,.35); background: rgba(24,113,150,.08); color: #0e3f52; }
.chip.brand i{ background: var(--brand); }

.status-badge{
    font-size: .78rem;
    font-weight: 700;
    padding: .25rem .5rem;
    border-radius: 8px;
    border: 1px solid var(--line);
}
.status-ok{ color:#126e2d; background: rgba(18,110,45,.08); border-color: rgba(18,110,45,.25);}
.status-warn{ color:#8a5a00; background: rgba(255,193,7,.15); border-color: rgba(255,193,7,.35);}
.status-danger{ color:#7a1620; background: rgba(220,53,69,.12); border-color: rgba(220,53,69,.35);}

/* ---------- Empty State ---------- */
.empty{
    border: 1px dashed var(--line);
    border-radius: var(--radius);
    padding: 2.2rem 1.2rem;
    text-align: center;
    color: var(--muted);
    background: linear-gradient(180deg, rgba(0,0,0,.02), transparent 70%);
}
.empty .emoji{
    font-size: 2rem;
    display: block;
    margin-bottom: .5rem;
}
.empty .title{ font-weight: 700; color: var(--fg); }
.empty .desc{ font-size: .95rem; }

/* ---------- Utilities ---------- */
.muted{ color: var(--muted) !important; }
.nowrap{ white-space: nowrap; }
.w-xxs{ width: 80px; }
.clickable-row{ cursor: pointer; }
.rounded-2xl{ border-radius: 24px !important; }

.shadow-soft{ box-shadow: var(--shadow) !important; }
.bg-brand-weak{ background: rgba(24,113,150,.08) !important; }
.border-brand{ border-color: rgba(24,113,150,.35) !important; }

/* ---------- Login Box on Main ---------- */
.login-card-center{
    max-width: 420px;
    margin: 3rem auto;
}
.login-card-center .card-body{
    padding: 1.5rem;
}
.login-card-center h4{
    font-weight: 800;
    letter-spacing: -.2px;
}

/* ---------- Buttons Tuning ---------- */
.btn-primary{
    background: var(--brand);
    border-color: var(--brand);
}
.btn-primary:hover{ background: #145a77; border-color: #145a77; }

.btn-outline-primary{
    color: var(--brand);
    border-color: rgba(24,113,150,.45);
}
.btn-outline-primary:hover{
    background: rgba(24,113,150,.08);
    border-color: var(--brand);
    color: #0e3f52;
}

/* ---------- Section separators ---------- */
.section-title{
    display:flex; align-items:center; gap:.6rem;
    margin: 1.25rem 0 .75rem;
    font-weight: 800;
}
.section-title::after{
    content:"";
    flex:1;
    height:1px;
    background: var(--line);
}

/* ---------- Responsive ---------- */
@media (max-width: 992px){
    .nav.nav-underline{
        overflow-x: auto;
        white-space: nowrap;
        scrollbar-width: thin;
    }
}

/* ---------- Print friendly ---------- */
@media print{
    .app-header, nav, .btn, .alert{ display:none !important; }
    .card{ box-shadow: none !important; }
    a[href]:after{ content:""; } /* 링크 꼬리표 제거 */
}
