@charset "utf-8";

/* =========================================
   Admin Board.css
   Common / Components / Responsive
========================================= */

:root{
    --board-bg:#ffffff;
    --board-line:#e5e7eb;
    --board-line-soft:#eef2f7;
    --board-text:#1f2937;
    --board-text-soft:#667085;
    --board-title:#1e2a5a;
    --board-primary:#3154d3;
    --board-primary-dark:#2956d8;
    --board-primary-soft:#eef3ff;
    --board-warn-bg:#fff8db;
    --board-warn-line:#f2e2a3;
    --board-warn-text:#8a5a00;
    --board-danger-bg:#fef2f2;
    --board-danger-line:#fecaca;
    --board-danger-text:#b91c1c;
    --board-gray-bg:#f3f4f6;
    --board-gray-line:#d1d5db;
    --board-gray-text:#4b5563;
    --board-shadow:0 8px 24px rgba(15,23,42,0.05);
}

/* =========================================
   Base
========================================= */

html, body{
    margin:0;
    padding:0;
}

body{
    font-family:"Malgun Gothic","Apple SD Gothic Neo","Noto Sans KR",sans-serif;
    font-size:13px;
    color:var(--board-text);
    background:#f5f7fb;
    line-height:1.45;
}

*, *::before, *::after{
    box-sizing:border-box;
}

img{
    max-width:100%;
    display:block;
}

/* editor content images should scale in content area */
.note-editable img,
.board-detail-textarea-read img{
    max-width:100%;
    height:auto;
}

a{
    color:inherit;
    text-decoration:none;
}

button,
input,
select,
textarea{
    font:inherit;
}

/* =========================================
   Inputs / Selects / Sizes
========================================= */

.board-input,
.board-select,
.board-mobile-select,
.board-form-input,
.board-form-select{
    min-height:30px;
    border:1px solid #d8dee8;
    border-radius:8px;
    padding:0 8px;
    background:#fff;
    font-size:12px;
    color:#111827;
    box-sizing:border-box;
    max-width:100%;
    vertical-align:middle;
}

.board-input:focus,
.board-select:focus,
.board-mobile-select:focus,
.board-form-input:focus,
.board-form-select:focus{
    outline:none;
    border-color:#9db3ff;
    box-shadow:0 0 0 3px rgba(49,84,211,0.10);
}

.board-input.xxxs,
.board-select.xxxs,
.board-form-input.xxxs,
.board-form-select.xxxs{ width:20px; }

.board-input.xxs,
.board-select.xxs,
.board-form-input.xxs,
.board-form-select.xxs{ width:40px; }

.board-input.xs,
.board-select.xs,
.board-form-input.xs,
.board-form-select.xs{ width:60px; }

.board-input.sm,
.board-select.sm,
.board-form-input.sm,
.board-form-select.sm{ width:88px; }

.board-input.md,
.board-select.md,
.board-form-input.md,
.board-form-select.md{ width:120px; }

.board-input.lg,
.board-select.lg,
.board-form-input.lg,
.board-form-select.lg{ width:152px; }

.board-input.xl,
.board-select.xl,
.board-form-input.xl,
.board-form-select.xl{ width:184px; }

.board-input.xxl,
.board-select.xxl,
.board-form-input.xxl,
.board-form-select.xxl{ width:264px; }

.board-input.date,
.board-select.date,
.board-form-input.date,
.board-form-select.date{ width:86px; }

.board-input.course-select,
.board-select.course-select,
.board-form-input.course-select,
.board-form-select.course-select{ width:264px; }

.board-input.num,
.board-form-input.num{
    text-align:right;
}

/* input color set */
.board-input.input-blue,
.board-select.input-blue{
    background:#eef4ff;
    border-color:#93c5fd;
    color:#1e3a8a;
}

.board-input.input-green,
.board-select.input-green{
    background:#ecfdf5;
    border-color:#86efac;
    color:#166534;
}

.board-input.input-red,
.board-select.input-red{
    background:#fef2f2;
    border-color:#fca5a5;
    color:#991b1b;
}

.board-input.input-yellow,
.board-select.input-yellow{
    background:#fffbeb;
    border-color:#fcd34d;
    color:#92400e;
}

.board-input.input-gray,
.board-select.input-gray{
    background:#f3f4f6;
    border-color:#d1d5db;
    color:#374151;
}

/* =========================================
   Layout / Cards / Head / Body
========================================= */

.board-page{
    padding:10px;
}

.board-page-tight,
.board-form-page,
.board-info-page{
    padding:8px;
}

.board-card,
.board-form-card,
.board-info-card,
.board-detail-card,
.board-mobile-item,
.board-summary-card{
    background:var(--board-bg);
    border:1px solid var(--board-line);
    box-shadow:var(--board-shadow);
}

.board-card{
    border-radius:16px;
    overflow:hidden;
    margin-bottom:14px;
}

.board-form-card{
    max-width:940px;
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 6px 18px rgba(15,23,42,0.06);
    margin-left:0 !important;
    margin-right:auto !important;

}

.board-info-card{
    border-radius:12px;
    overflow:hidden;
}

.board-detail-card{
    border-radius:16px;
    padding:16px;
}

.board-head{
    background:#0a246a;
    color:#fff;
    padding:10px 12px;
    font-size:15px;
    font-weight:800;
    line-height:1.3;
    letter-spacing:-0.01em;
}

.board-head-flex{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}

.board-body{
    padding:12px;
}

.board-body-padless{
    padding:0;
}

/* =========================================
   Filter / Search / Toolbar
========================================= */

.board-filter{
    padding:10px 12px;
    border-bottom:1px solid var(--board-line-soft);
    background:#fbfcff;
}

.board-filter-row{
    display:flex;
    flex-wrap:wrap;
    gap:6px 8px;
    align-items:center;
    margin-bottom:8px;
}

.board-filter-row:last-child{
    margin-bottom:0;
}

.board-filter-box{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
    padding:2px 4px;
}

.board-filter-grid-1{
    display:grid;
    grid-template-columns:1fr;
    gap:4px 10px;
}

.board-filter-grid-2{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4px 10px;
}

.board-toolbar{
    padding:10px 12px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    border-bottom:1px solid var(--board-line-soft);
}

.board-toolbar-left,
.board-toolbar-center,
.board-toolbar-right,
.board-list-search-left,
.board-list-search-right{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}

.board-label{
    font-size:13px;
    font-weight:700;
    color:#2747c7;
    white-space:nowrap;
}

.board-value,
.board-page-desc{
    font-size:13px;
    color:#111827;
    line-height:1.35;
}

.board-inline,
.compact-inline{
    display:inline-flex;
    align-items:center;
    gap:4px;
    flex-wrap:wrap;
    min-width:0;
}

.compact-inline,
.excel-btn-compact{
    white-space:nowrap;
}

.board-inline-note,
.board-help,
.board-form-meta,
.board-mobile-sub{
    font-size:11px;
    color:#667085;
}

.board-iframe,
.board-form-iframe{
    border:0;
    background:transparent;
}

.board-iframe{
    width:110px;
    height:22px;
    vertical-align:middle;
    overflow:hidden;
}

.board-form-iframe{
    width:120px;
    height:24px;
}

.board-summary{
    font-size:12px;
    color:#475467;
    font-weight:700;
}

.toolbar-mobile-2row{
    display:flex;
    align-items:center;
    gap:8px;
}

.toolbar-mobile-2row .toolbar-row{
    display:flex;
    align-items:center;
    gap:6px;
    white-space:nowrap;
}

/* =========================================
   Buttons
========================================= */

.board-btn,
a.board-page,
.board-page.current,
.month-picker-btn,
.month-picker-item,
.board-badge,
.board-pill,
.mystatus{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
}

.board-btn{
    min-height:32px;
    padding:0 8px;
    border-radius:8px;
    border:1px solid #d8dee8;
    background:#f8fafc;
    color:#344054;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
    text-decoration:none;
    transition:all .15s ease;
}

.board-btn:hover{
    filter:brightness(0.99);
}

.board-btn.primary{
    background:var(--board-primary);
    color:#fff;
    border-color:var(--board-primary);
}

.board-btn.warn{
    background:#fff7ed;
    color:#9a3412;
    border-color:#fed7aa;
}

.board-btn.danger{
    background:var(--board-danger-bg);
    color:var(--board-danger-text);
    border-color:var(--board-danger-line);
}

.board-btn.yellow{
    background:var(--board-warn-bg);
    color:var(--board-warn-text);
    border-color:var(--board-warn-line);
}

.board-btn.gray{
    background:var(--board-gray-bg);
    color:var(--board-gray-text);
    border-color:var(--board-gray-line);
}

.board-btn-head-more{
    min-height:28px;
    padding:0 10px;
    background:rgba(255,255,255,0.14);
    color:#fff;
    border-color:rgba(255,255,255,0.25);
}

.board-form-btn{
    min-height:42px;
    border:0;
    border-radius:10px;
    font-size:17px;
    font-weight:800;
    cursor:pointer;
    transition:all .15s ease;
}

.board-form-btn.primary{
    flex:1 1 auto;
    background:#006699;
    color:#fff;
}

.board-form-btn.secondary{
    flex:0 0 120px;
    background:#e5e7eb;
    color:#111827;
}

.board-form-btn:hover{
    filter:brightness(0.98);
}

/* =========================================
   Tables
========================================= */

.board-table-wrap,
.analysis25-table-wrap{
    width:100%;
    overflow-x:auto;
}

.board-table{
    width:100%;
    min-width:800px;
    border-collapse:collapse;
    background:#fff;
    table-layout:fixed;
}

.board-table.customer-analysis-table{
    min-width:800px;
}

.board-table th{
    background:#3366FF;
    color:#fff;
    font-size:12px;
    font-weight:700;
    text-align:center;
    padding:6px 3px;
    border-bottom:1px solid var(--board-primary-dark);
    white-space:nowrap;
    line-height:1.2;
}

.board-table td{
    font-size:12px;
    color:var(--board-text);
    padding:5px 3px;
    border-bottom:1px solid #edf2f7;
    vertical-align:top;
    background:#fff;
    line-height:1.35;
    word-break:break-word;
}

.board-table tbody tr:hover td{
    background:#fff7f2;
}

.board-table .center,
.board-ta-center{ text-align:center !important; }
.board-table .left,
.board-ta-left{ text-align:left !important; }
.board-table .right,
.board-ta-right{ text-align:right !important; }

.board-cell-ellipsis{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.board-cell-2line,
.board-title-cell{
    line-height:1.45;
    word-break:break-word;
}

.board-link-title,
.board-mobile-title-link,
.board-album-title a{
    color:#111827;
    text-decoration:none;
}

.board-link-title:hover,
.board-mobile-title-link:hover,
.board-album-title a:hover{
    color:#2747c7;
    text-decoration:underline;
}

.board-file-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
}

.board-file-link img{
    display:inline-block;
}

/* =========================================
   Mobile Cards
========================================= */

.board-mobile-list{
    display:none;
    padding:8px;
}

.board-mobile-item{
    border-radius:16px;
    overflow:hidden;
    margin-bottom:12px;
}

.board-mobile-head{
    padding:12px 14px;
    border-bottom:1px solid var(--board-line-soft);
    background:#cedbff;
    display:flex;
    justify-content:space-between;
    gap:10px;
    align-items:flex-start;
}

.board-mobile-title{
    font-size:15px;
    font-weight:800;
    color:var(--board-title);
    line-height:1.4;
}

.board-mobile-title-sub{
    margin-top:4px;
    font-size:12px;
    color:#64748b;
    line-height:1.4;
}

.board-mobile-body{
    padding:12px 14px;
    display:grid;
    gap:8px;
}

.board-mobile-row{
    display:grid;
    grid-template-columns:88px 1fr;
    gap:8px;
    align-items:start;
    font-size:13px;
    line-height:1.5;
}

.board-mobile-row.wide{
    grid-template-columns:70px 1fr;
}

.board-mobile-label{
    color:var(--board-text-soft);
    font-weight:700;
	text-align:center;
}

.board-mobile-value{
	text-align:left;
	color:#111827;
    word-break:break-word;
}

.board-mobile-actions{
    padding:12px 14px 14px;
    border-top:1px solid var(--board-line-soft);
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.board-mobile-section{
    margin-top:8px;
    padding-top:8px;
    border-top:1px dashed #e5e7eb;
}

/* =========================================
   Badge / Note / Pill / Status
========================================= */

.board-badge,
.board-badge-blue,
.board-badge-green,
.board-badge-yellow,
.board-badge-red,
.board-badge-gray,
.board-pill,
.mystatus{
    min-height:24px;
    padding:0 8px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
    line-height:1;
}

.board-badge{
    background:#eef3ff;
    color:#2747c7;
}

.board-badge.red,
.board-badge-red{
    background:#fef2f2;
    color:#b91c1c;
    border:1px solid #fecaca;
}

.board-badge.gray,
.board-badge-gray{
    background:#f3f4f6;
    color:#4b5563;
    border:1px solid #d1d5db;
}

.board-badge-blue{
    background:#eef3ff;
    color:#3154d3;
    border:1px solid #c7d4ff;
}

.board-badge-green{
    background:#ecfdf3;
    color:#027a48;
    border:1px solid #abefc6;
}

.board-badge-yellow{
    background:#fff8db;
    color:#8a5a00;
    border:1px solid #f2e2a3;
}

.board-note-red{ color:#dc2626; font-weight:700; }
.board-note-blue{ color:#2563eb; font-weight:700; }
.board-note-green{ color:#15803d; font-weight:700; }
.board-note-black{ color:#111827; font-weight:700; }

.board-pill{
    padding:2px 7px;
    min-height:22px;
    border:1px solid #d8dee8;
    background:#fff;
    color:#334155;
}

.board-pill.red{ background:#fef2f2; color:#b91c1c; border-color:#fecaca; }
.board-pill.blue{ background:#eef3ff; color:#3154d3; border-color:#c7d4ff; }
.board-pill.green{ background:#ecfdf3; color:#027a48; border-color:#abefc6; }
.board-pill.gray{ background:#f3f4f6; color:#4b5563; border-color:#d1d5db; }
.board-pill.yellow{ background:#fff8db; color:#8a5a00; border-color:#f2e2a3; }

.mystatus{
    display:inline-block;
    min-width:72px;
    padding:4px 10px;
    font-size:12px;
    font-weight:700;
    line-height:1.2;
    text-align:center;
    border:1px solid transparent;
}

.mystatus.is-wait{
    background:#fff7ed;
    color:#9a3412;
    border-color:#fed7aa;
}

.mystatus.is-progress{
    background:#eef4ff;
    color:#1d4ed8;
    border-color:#bfdbfe;
}

.mystatus.is-done{
    background:#ecfdf3;
    color:#027a48;
    border-color:#abefc6;
}

.mystatus.is-error{
    background:#fef2f2;
    color:#b91c1c;
    border-color:#fecaca;
}

.mystatus.is-cancel{
    background:#f3f4f6;
    color:#4b5563;
    border-color:#d1d5db;
}

.mystatus.is-warning{
    background:#fffbeb;
    color:#b45309;
    border-color:#fde68a;
}

/* =========================================
   Empty / Summary / Helpers
========================================= */

.board-empty{
    padding:18px 12px;
    text-align:center;
    color:#64748b;
    font-weight:700;
    background:#fff;
}

.board-page-wrap{
    padding:10px;
}

.board-page-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:14px;
}

.board-page-title{
    margin:0;
    font-size:24px;
    line-height:1.25;
    font-weight:800;
    color:var(--board-title);
    letter-spacing:-0.02em;
}

.board-page-actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.board-summary-row{
    display:flex;
    flex-wrap:wrap;
    gap:10px 12px;
    margin-bottom:14px;
}

.board-summary-card{
    border-radius:14px;
    padding:12px 14px;
    min-width:150px;
}

.board-summary-label{
    display:block;
    font-size:12px;
    color:var(--board-text-soft);
    font-weight:700;
    line-height:1.3;
}

.board-summary-value{
    display:block;
    margin-top:4px;
    font-size:22px;
    line-height:1.2;
    color:#111827;
    font-weight:800;
}

.board-actions-wrap{
    display:flex;
    flex-wrap:wrap;
    gap:4px;
}

/* =========================================
   Form / Info / Detail
========================================= */

.board-form-head,
.board-info-head{
    padding:10px 12px;
    background:#f8fbff;
    border-bottom:1px solid var(--board-line-soft);
}

.board-form-head{
    text-align:left !important;
    justify-content:flex-start !important;
    align-items:flex-start !important;
    background:linear-gradient(180deg,#f8fbff 0%, #ffffff 100%);
}

.board-form-title{
    margin:0;
    font-size:20px;
    line-height:1.25;
    font-weight:800;
    color:var(--board-title);
    letter-spacing:-0.02em;
}

.board-form-sub,
.board-info-sub{
    margin-top:3px;
    font-size:12px;
    color:var(--board-text-soft);
}

.board-form-body{
    padding:12px 14px;
}

.board-form-row{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:32px;
    padding:4px 0;
    border-bottom:1px solid #f2f4f7;
}

.board-form-row:last-child,
.board-info-row:last-child{
    border-bottom:0;
}

.board-form-label{
    flex:0 0 108px;
    width:108px;
    font-size:12px;
    font-weight:800;
    color:#344054;
    white-space:nowrap;
}

.board-form-value{
    flex:1 1 auto;
    min-width:0;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    font-size:12px;
    color:#111827;
    line-height:1.35;
}

.board-form-inline{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    width:100%;
}

.board-form-key{
    color:#2747c7;
    font-weight:800;
    white-space:nowrap;
    margin-right:1px;
}

.board-section{
    margin-top:12px;
    border-top:1px solid var(--board-line-soft);
    padding-top:10px;
}

.board-section-title{
    margin:0 0 8px;
    font-size:15px;
    font-weight:800;
    color:#2d3d8b;
    letter-spacing:-0.01em;
}

.board-edu-frame-wrap{
    width:100%;
    border:1px solid var(--board-line);
    border-radius:10px;
    overflow:hidden;
    background:#fff;
    margin-top:8px;
}

.board-edu-frame{
    width:100%;
    height:260px;
    border:0;
    display:block;
}

.board-form-actions{
    display:flex;
    gap:8px;
    padding:12px 14px 14px;
    border-top:1px solid var(--board-line-soft);
    background:#fbfcff;
}

.board-info-title{
    margin:0;
    font-size:16px;
    line-height:1.35;
    font-weight:800;
    color:var(--board-title);
    letter-spacing:-0.01em;
}

.board-info-body{
    padding:10px 12px;
}

.board-info-row{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:6px 0;
    border-bottom:1px solid #f2f4f7;
}

.board-info-label{
    flex:0 0 88px;
    width:88px;
    font-size:12px;
    font-weight:800;
    color:#344054;
    white-space:nowrap;
    padding-top:2px;
}

.board-info-value{
    flex:1 1 auto;
    min-width:0;
    font-size:12px;
    color:#111827;
    line-height:1.5;
    word-break:break-word;
}

.board-info-value.blue{
    color:#2563eb;
    font-weight:700;
}

.board-info-schedule{
    display:grid;
    gap:6px;
}

.board-info-schedule-item{
    border:1px solid #e8eefb;
    background:#f8fbff;
    border-radius:10px;
    padding:8px 10px;
}

.board-info-schedule-top{
    display:flex;
    flex-wrap:wrap;
    gap:6px 10px;
    align-items:center;
    margin-bottom:3px;
}

.board-info-day{ font-weight:800; color:#2747c7; }
.board-info-date{ color:#111827; font-weight:700; }
.board-info-time{ color:#475467; }
.board-info-desc{ color:#344054; line-height:1.45; }

.board-detail-wrap{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
}

.board-detail-title{
    margin:0 0 14px;
    font-size:18px;
    line-height:1.3;
    font-weight:800;
    color:var(--board-title);
}

.board-detail-subtitle{
    font-size:14px;
    font-weight:800;
    color:#334155;
}

.board-detail-grid,
.board-form-grid{
    display:grid;
    gap:12px;
}

.board-detail-grid{
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:10px;
}

.board-form-grid{
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
}

.board-detail-item{
    background:#fafbfc;
    border:1px solid #edf0f3;
    border-radius:12px;
    padding:11px 12px;
}

.board-detail-label{
    display:block;
    margin-bottom:4px;
    font-size:12px;
    color:var(--board-text-soft);
    font-weight:700;
    line-height:1.3;
}

.board-detail-value{
    display:block;
    font-size:14px;
    color:#111827;
    font-weight:700;
    line-height:1.45;
    word-break:break-word;
}

.board-detail-block{
    margin-top:16px;
}

.board-detail-textarea-read{
    min-height:120px;
    padding:12px 14px;
    border:1px solid var(--board-line);
    border-radius:12px;
    background:#fff;
    color:#111827;
    font-size:14px;
    line-height:1.6;
    white-space:pre-wrap;
}

/* =========================================
   Pagination / Sidebar / Month Picker
========================================= */

.board-pagination{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    flex-wrap:wrap;
    margin-top:16px;
}

.board-page.current{
    min-width:32px;
    height:32px;
    padding:0 10px;
    border-radius:8px;
    background:var(--board-primary);
    color:#fff;
    font-size:12px;
    font-weight:800;
    border:1px solid var(--board-primary);
}

a.board-page{
    min-width:32px;
    height:32px;
    padding:0 10px;
    border-radius:8px;
    background:#fff;
    color:#344054;
    font-size:12px;
    font-weight:700;
    border:1px solid #d8dee8;
}

a.board-page:hover{
    background:#eef3ff;
    color:#2747c7;
    border-color:#c7d4ff;
}

.sidebar-menu{
    padding:8px 0;
}

.sidebar-menu .menu-group{
    margin-bottom:6px;
    border-bottom:1px solid #eef2f7;
    padding-bottom:4px;
}

.sidebar-menu .menu-title{
    font-size:13px;
    font-weight:800;
    color:#475467;
    padding:8px 16px 6px;
}

.sidebar-menu .menu-item{
    display:block;
    padding:12px 16px 12px 20px;
    font-size:14px;
    color:#111827;
    border-radius:12px;
    margin:2px 8px;
    transition:all .15s ease;
}

.sidebar-menu .menu-item:hover{
    background:#eef3ff;
    color:#2747c7;
}

.sidebar-menu .menu-item.active{
    background:#3154d3;
    color:#fff;
    font-weight:800;
}

.month-picker-layer{
    position:absolute;
    z-index:9999;
    width:280px;
}

.month-picker-card{
    background:#fff;
    border:1px solid #dbe2ea;
    border-radius:16px;
    box-shadow:0 12px 30px rgba(15,23,42,0.16);
    overflow:hidden;
}

.month-picker-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:12px 14px;
    background:#f8fbff;
    border-bottom:1px solid #e7eef8;
}

.month-picker-title{
    font-size:15px;
    font-weight:800;
    color:#1e2a5a;
}

.month-picker-nav{
    display:flex;
    align-items:center;
    gap:6px;
}

.month-picker-btn{
    min-width:32px;
    height:32px;
    border:1px solid #d8dee8;
    border-radius:8px;
    background:#fff;
    color:#334155;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
}

.month-picker-btn:hover,
.month-picker-item:hover{
    background:#eef3ff;
    border-color:#c7d4ff;
    color:#2747c7;
}

.month-picker-btn.primary{
    background:#2563eb;
    color:#fff;
    border-color:#2563eb;
}

.month-picker-btn.primary:hover{
    background:#1d4ed8;
    border-color:#1d4ed8;
}

.month-picker-body{
    padding:14px;
}

.month-picker-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:8px;
}

.month-picker-item{
    min-height:40px;
    border:1px solid #d8dee8;
    border-radius:10px;
    background:#fff;
    color:#334155;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
}

.month-picker-item.active{
    background:#3154d3;
    border-color:#3154d3;
    color:#fff;
}

/* =========================================
   Dashboard / Specialized Layouts
========================================= */

.dashboard-board-grid{
    display:grid;
    grid-template-columns:minmax(0, 1.65fr) minmax(320px, 1fr);
    gap:14px;
    align-items:start;
}

.dashboard-board-left,
.dashboard-board-right{
    min-width:0;
}

.dashboard-board-right{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.board-dashboard-frame-wrap{
    width:100%;
    padding:12px;
    background:#f8fafc;
    display:flex;
    justify-content:center;
    align-items:flex-start;
    overflow:hidden;
}

.board-dashboard-frame{
    display:block;
    width:100%;
    border:0;
    background:#fff;
}

.board-dashboard-frame-calendar{
    min-height:240px;
}

.board-dashboard-table{
    min-width:640px;
}

.board-page-analysis{
    max-width:1400px;
    margin:0 auto;
}

.board-page-analysis .board-card{
    margin:0;
}

@media (min-width:1024px){
    .analysis25-table-wrap{
        max-width:100%;
    }

    .board-table.customer-analysis-table{
        min-width:1200px;
    }

    .board-form-page.board-form-page-wide{
        max-width:1500px;
    }

    .board-form-page.board-form-page-wide .board-form-label{
        flex:0 0 130px;
        width:130px;
    }
}

.analysis25-table-wrap.view-wide .board-table{ min-width:1400px; }
.analysis25-table-wrap.view-normal .board-table{ min-width:1100px; }
.analysis25-table-wrap.view-compact .board-table{ min-width:900px; }
.analysis25-table-wrap.density-compact td{ padding:3px 2px; font-size:11px; }
.analysis25-table-wrap.density-normal td{ padding:5px 3px; }
.analysis25-table-wrap.density-comfortable td{ padding:7px 4px; }
.analysis-filter-grid{ grid-template-columns:1fr 1fr; }

.board-list-page{
    max-width:1100px;
    margin:0 auto;
}

.board-list-search{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
}

.board-list-table{ min-width:760px; }
.board-list-table .col-no{ width:60px; }
.board-list-table .col-admin{ width:90px; }
.board-list-table .col-file{ width:56px; }
.board-list-table .col-date{ width:96px; }
.board-list-table .col-hit{ width:70px; }

.board-title-cell .transfer-link{
    margin-left:8px;
    color:#2563eb;
    font-weight:700;
    cursor:pointer;
    white-space:nowrap;
}

.board-list-footer{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:8px;
    padding:12px;
}

.board-form-page.board-form-page-wide{
    max-width:1400px;
    margin:0 auto;
    padding:10px 14px;
}

.board-form-page.board-form-page-wide .board-form-card{
    max-width:none;
    width:100%;
}

.board-form-page.board-form-page-wide .board-form-body{
    padding:16px 18px;
}

.board-form-page.board-form-page-wide .board-form-row{
    align-items:flex-start;
}

.board-form-page.board-form-page-wide .board-form-label{
    flex:0 0 120px;
    width:120px;
}

.board-form-page.board-form-page-wide .board-form-value{
    flex:1 1 auto;
    min-width:0;
}

.board-form-page.board-form-page-wide .board-form-input-full,
.board-form-page.board-form-page-wide .board-input-full{
    width:100%;
    max-width:none;
}

.board-form-page.board-form-page-wide .board-editor-summernote-wrap{
    width:100%;
    border:1px solid var(--board-line);
    border-radius:10px;
    overflow:hidden;
    background:#fff;
}

.board-form-page.board-form-page-wide .note-editor.note-frame,
.board-form-page.board-form-page-wide .note-editor.note-airframe{
    border:0 !important;
    border-radius:0 !important;
}

.board-form-page.board-form-page-wide .note-toolbar{
    background:#f8fbff;
    border-bottom:1px solid var(--board-line-soft);
}

.board-album-grid{
    display:grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:12px;
    padding:12px;
}

.board-album-item{
    border:1px solid var(--board-line);
    border-radius:14px;
    background:#fff;
    box-shadow:var(--board-shadow);
    overflow:hidden;
}

.board-album-thumb{
    display:flex;
    align-items:center;
    justify-content:center;
    aspect-ratio:4 / 3;
    background:#f8fafc;
    border-bottom:1px solid var(--board-line-soft);
    overflow:hidden;
}

.board-album-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.board-album-body{
    padding:10px;
}

.board-album-meta{
    font-size:11px;
    color:var(--board-text-soft);
    line-height:1.4;
    margin-bottom:6px;
}

.board-album-title{
    font-size:13px;
    font-weight:700;
    line-height:1.45;
    word-break:break-word;
}

.board-recharge-page{
    max-width:1500px;
    margin:0 auto;
}

.board-recharge-summary{
    display:flex;
    flex-wrap:wrap;
    gap:8px 14px;
    padding:10px 12px 0;
    font-size:12px;
    color:#344054;
}

.board-recharge-summary b{ color:#111827; }
.board-recharge-table{ min-width:1320px; }
.board-recharge-table th,
.board-recharge-table td{ font-size:12px; }
.board-recharge-amount{ text-align:right; white-space:nowrap; }
.board-recharge-status{ font-weight:700; white-space:nowrap; }
.board-recharge-status.wait{ color:#15803d; }
.board-recharge-status.done{ color:#1d4ed8; }
.board-recharge-status.cancel{ color:#dc2626; }
.board-recharge-status.hold{ color:#d97706; }

.board-recharge-actions{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}

.board-recharge-actions .board-btn{
    min-height:28px;
    padding:0 8px;
}

.board-recharge-mobile-note{
    font-size:12px;
    color:#667085;
    line-height:1.5;
    padding:0 12px 12px;
}

/* =========================================
   Selected file list / Upload overlay / Editor helpers
========================================= */

.board-selected-file-item{
    display:flex;
    align-items:center;
    gap:10px;
    border:1px solid #e5e7eb;
    border-radius:10px;
    background:#fff;
    padding:8px;
    margin-bottom:8px;
}

.board-selected-file-thumb{
    width:56px;
    height:56px;
    border-radius:8px;
    overflow:hidden;
    background:#f8fafc;
    border:1px solid #e5e7eb;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 56px;
}

.board-selected-file-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.board-selected-file-thumb-file{
    font-size:11px;
    font-weight:700;
    color:#475467;
}

.board-selected-file-main{
    min-width:0;
    flex:1 1 auto;
}

.board-selected-file-name{
    font-size:13px;
    font-weight:700;
    color:#111827;
    line-height:1.4;
    word-break:break-all;
}

.board-selected-file-meta{
    margin-top:2px;
    font-size:12px;
    color:#667085;
}

.board-selected-file-actions{
    flex:0 0 auto;
}

.note-editable{
    min-height:260px;
}

.note-editable.dragover{
    outline:2px dashed #3154d3;
    outline-offset:-6px;
    background:#f8fbff;
}

.board-upload-overlay{
    position:fixed;
    left:0;
    top:0;
    right:0;
    bottom:0;
    z-index:99999;
    background:rgba(15,23,42,0.28);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:16px;
}

.board-upload-overlay-card{
    min-width:280px;
    max-width:92vw;
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:16px;
    box-shadow:0 18px 42px rgba(15,23,42,0.20);
    padding:22px 20px;
    text-align:center;
}

.board-upload-overlay-title,
.board-upload-overlay-text{
    margin-top:10px;
    font-size:16px;
    font-weight:800;
    color:#1f2937;
}

.board-upload-overlay-file{
    margin-top:8px;
    font-size:12px;
    color:#475467;
    word-break:break-all;
}

.board-upload-progress-wrap{
    margin-top:12px;
    width:100%;
    height:12px;
    border-radius:999px;
    background:#e5e7eb;
    overflow:hidden;
}

.board-upload-progress-bar{
    height:12px;
    width:0%;
    background:linear-gradient(90deg,#3154d3,#5b7cff);
    transition:width .12s linear;
}

.board-upload-overlay-percent{
    margin-top:10px;
    font-size:20px;
    font-weight:800;
    color:#1f2937;
}

.board-upload-overlay-meta{
    margin-top:6px;
    font-size:12px;
    color:#667085;
}

.board-upload-spinner{
    width:42px;
    height:42px;
    margin:0 auto;
    border-radius:50%;
    border:4px solid #dbe4ff;
    border-top-color:#3154d3;
    animation:boardSpin 0.8s linear infinite;
}

@keyframes boardSpin{
    from{ transform:rotate(0deg); }
    to{ transform:rotate(360deg); }
}

/* =========================================
   Responsive
========================================= */

@media (max-width:1200px){
    .board-page{ padding:8px; }
    .board-album-grid{ grid-template-columns:repeat(4, minmax(0, 1fr)); }
}

@media (max-width:1024px){
    .board-filter-grid-2,
    .analysis-filter-grid,
    .dashboard-board-grid{
        grid-template-columns:1fr;
    }

    .board-dashboard-frame-calendar{ min-height:230px; }
    .board-album-grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
}

@media (max-width:768px){
    html, body{ overflow-x:hidden; }

    body{
        font-size:14px;
        line-height:1.55;
    }

    .board-page,
    .board-page-tight,
    .board-page-wrap,
    .board-info-page,
    .board-form-page,
    .board-form-page.board-form-page-wide,
    .board-list-page,
    .board-recharge-page{
        padding:4px !important;
        max-width:none;
    }

    .board-card,
    .board-form-card,
    .board-info-card,
    .board-detail-card,
    .board-mobile-item,
    .board-summary-card{
        border-radius:12px;
    }

    .board-head,
    .board-filter,
    .board-toolbar,
    .board-body,
    .board-form-head,
    .board-form-body,
    .board-form-actions,
    .board-info-head,
    .board-info-body,
    .board-detail-card,
    .board-dashboard-frame-wrap,
    .board-recharge-summary,
    .board-recharge-mobile-note{
        padding-left:7px !important;
        padding-right:7px !important;
    }

    .board-filter-row{
        gap:8px 10px;
    }

    .board-inline{
        width:auto !important;
        flex:0 0 auto;
        display:inline-flex;
        white-space:nowrap;
    }

    .board-input,
    .board-select,
    .board-mobile-select,
    .board-form-input,
    .board-form-select{
        font-size:13px;
    }

    .board-btn,
    .board-mobile-actions .board-btn{
        font-size:12px;
    }

    .board-label,
    .board-value,
    .board-summary,
    .board-page-desc{
        font-size:13px;
    }

    .board-input.xl,
    .board-input.xxl,
    .board-select.xl,
    .board-select.xxl,
    .board-form-input.xl,
    .board-form-input.xxl,
    .board-form-select.xl,
    .board-form-select.xxl,
    .board-form-page.board-form-page-wide .board-input.md,
    .board-form-page.board-form-page-wide .board-input.lg,
    .board-form-page.board-form-page-wide .board-input.xl,
    .board-form-page.board-form-page-wide .board-input.xxl{
        width:100%;
        max-width:100%;
    }

    .board-input.date,
    .board-select.date,
    .board-form-input.date,
    .board-form-select.date{
        width:80px;
    }

    .board-iframe{
        width:100%;
        height:32px;
        overflow:hidden;
    }

    .board-filter-box{
        gap:4px;
        padding:4px 2px;
    }

    .board-filter-box .board-label{ font-size:12px; }

    .board-filter-box .board-select{
        min-width:60px;
        height:26px;
        font-size:12px;
    }

    .board-filter-box .board-iframe{
        width:100px;
        height:26px;
    }

    .board-toolbar-right .board-btn,
    .board-mobile-actions .board-btn,
    .board-form-actions .board-btn,
    .board-form-page.board-form-page-wide .board-form-actions .board-btn,
    .board-form-page.board-form-page-wide .board-form-actions .board-form-btn{
        flex:1 1 calc(50% - 8px);
    }

    .board-table-wrap,
    .analysis25-table-wrap,
    .board-recharge-table-wrap{
        display:none !important;
    }

    .board-mobile-list,
    .analysis25-mobile-list,
    .board-recharge-mobile-list{
        display:block;
        padding-left:4px !important;
        padding-right:4px !important;
    }

    .board-mobile-head,
    .board-mobile-body,
    .board-mobile-actions,
    .board-album-body{
        padding-left:7px !important;
        padding-right:7px !important;
    }

    .board-mobile-actions{
        padding-top:8px !important;
        padding-bottom:10px !important;
    }

    .board-mobile-row,
    .board-info-row,
    .board-form-row{
        gap:6px !important;
    }

    .board-detail-card{
        padding:8px;
        border-radius:7px;
    }

    .board-detail-grid,
    .board-form-grid{
        grid-template-columns:1fr;
        gap:8px;
    }

    .board-detail-item{
        padding:10px 11px;
    }

    .board-detail-title{
        font-size:16px;
        margin-bottom:12px;
    }

    .board-detail-subtitle{
        font-size:14px;
    }

    .board-detail-textarea-read{
        min-height:100px;
        padding:10px 12px;
        font-size:13px;
    }

    .board-pagination{
        gap:4px;
        margin-top:14px;
    }

    .board-page.current,
    a.board-page{
        min-width:30px;
        height:30px;
        font-size:12px;
        padding:0 8px;
    }

    .toolbar-mobile-2row{
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:6px;
        width:100%;
    }

    .toolbar-mobile-2row .toolbar-row-top,
    .toolbar-mobile-2row .toolbar-row-bottom{
        display:flex;
        flex-wrap:nowrap;
        align-items:center;
        justify-content:flex-start;
        gap:6px;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }

    .toolbar-mobile-2row .toolbar-row-bottom .board-btn,
    .toolbar-mobile-2row .toolbar-row-top .board-inline,
    .excel-btn-compact{
        flex:0 0 auto;
    }

    .excel-btn-compact{
        padding:4px 8px !important;
        min-height:28px;
        font-size:12px;
        line-height:1.1;
        border-radius:6px;
    }

    .board-summary-row{
        gap:6px !important;
    }

    .board-summary-card{
        flex:1 1 calc(50% - 8px);
        min-width:0;
        padding:8px 9px !important;
    }

    .board-summary-value{
        font-size:18px;
    }

    .board-help{
        font-size:12px;
    }

    .board-dashboard-frame-wrap{
        padding:10px;
    }

    .board-dashboard-frame-calendar{
        min-height:210px;
    }

    .sidebar-menu .menu-title{
        font-size:13px;
        padding:8px 16px 6px;
    }

    .sidebar-menu .menu-item{
        padding:12px 16px 12px 20px;
        font-size:14px;
        border-radius:12px;
    }

    .board-form-page.board-form-page-wide .board-form-body{
        padding:6px;
    }

    .board-form-page.board-form-page-wide .board-form-row{
        display:block;
        padding:8px 0;
    }

    .board-form-page.board-form-page-wide .board-form-label{
        width:auto;
        margin-bottom:6px;
        font-size:13px;
    }

    .board-form-page.board-form-page-wide .board-form-value{
        width:100%;
        display:block;
    }

    .board-form-page.board-form-page-wide .board-form-inline{
        width:100%;
    }

    .board-form-page.board-form-page-wide .board-input,
    .board-form-page.board-form-page-wide .board-select,
    .board-form-page.board-form-page-wide .board-form-input,
    .board-form-page.board-form-page-wide .board-form-select{
        max-width:100%;
    }

    .board-album-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:10px;
        padding:10px;
    }

    .board-album-title{
        font-size:12px;
    }

    .board-recharge-summary{
        padding:10px 12px 0;
        font-size:12px;
    }

    .board-selected-file-item{
        padding:7px !important;
    }

    .board-upload-overlay{
        padding:10px !important;
    }

    .board-upload-overlay-card{
        max-width:96vw !important;
        min-width:0 !important;
        width:100%;
        padding:16px 14px !important;
    }
}

@media (max-width:480px){
    .board-album-grid{
        grid-template-columns:1fr 1fr;
    }
}

@media (min-width:769px){
    .analysis25-mobile-list,
    .board-recharge-mobile-list{
        display:none;
    }
}

/* =========================================================
   Mobile full-width override
========================================================= */
@media (max-width: 768px){
    html, body{
        width:100%;
        overflow-x:hidden;
    }

    body{
        background:#f5f7fb;
    }

    .board-page,
    .board-page-tight,
    .board-form-page,
    .board-page-wrap,
    .board-form-page.board-form-page-wide,
    .board-mobile-list,
    .board-page-analysis{
        padding:0 !important;
        margin:0 !important;
        max-width:none !important;
    }

    .board-card,
    .board-form-card,
    .board-mobile-item,
    .board-detail-card,
    .board-info-card{
        width:100% !important;
        max-width:none !important;
        margin:0 0 8px 0 !important;
        border-left:0 !important;
        border-right:0 !important;
        border-radius:0 !important;
        box-shadow:none !important;
    }

    .board-head,
    .board-filter,
    .board-toolbar,
    .board-body,
    .board-info-head,
    .board-info-body,
    .board-detail-card,
    .board-detail-textarea-read,
    .board-mobile-head,
    .board-mobile-body,
    .board-mobile-actions,
    .board-form-page.board-form-page-wide .board-form-body,
    .board-form-actions{
        padding-left:6px !important;
        padding-right:6px !important;
    }

    .board-head,
    .board-filter,
    .board-toolbar,
    .board-body,
    .board-info-head,
    .board-info-body,
    .board-mobile-head,
    .board-mobile-body{
        padding-top:8px !important;
        padding-bottom:8px !important;
    }

    .board-mobile-actions,
    .board-form-actions{
        padding-top:8px !important;
        padding-bottom:10px !important;
    }

    .board-filter-box,
    .board-form-inline,
    .board-filter-row{
        gap:4px !important;
    }

    .board-mobile-row{
        grid-template-columns:72px 1fr !important;
        gap:6px !important;
    }

    .board-summary-row{
        margin-bottom:8px !important;
        gap:6px !important;
    }

    .board-summary-card{
        border-radius:10px !important;
        padding:8px !important;
    }

    .board-upload-overlay{
        padding:6px !important;
    }

    .board-upload-overlay-card{
        width:100% !important;
        max-width:calc(100vw - 12px) !important;
        min-width:0 !important;
        border-radius:12px !important;
        padding:14px 10px !important;
    }
}

/* =========================================================
   Topbar font-scale / density support for admin-board
   Added for layout_topbar.inc compatibility
========================================================= */

/* -----------------------------------------
   1) 글자크기 조정 - admin-board 전체 대응
----------------------------------------- */
body.font-scale-normal .board-page,
body.font-scale-normal .board-form-page,
body.font-scale-normal .board-info-page{
    font-size:13px;
    line-height:1.45;
}

body.font-scale-large .board-page,
body.font-scale-large .board-form-page,
body.font-scale-large .board-info-page{
    font-size:16px;
    line-height:1.65;
}

/* 제목/라벨/값 */
body.font-scale-large .board-head{
    font-size:17px;
}

body.font-scale-large .board-label,
body.font-scale-large .board-value,
body.font-scale-large .board-help,
body.font-scale-large .board-summary,
body.font-scale-large .board-form-label,
body.font-scale-large .board-form-value,
body.font-scale-large .board-info-label,
body.font-scale-large .board-info-value,
body.font-scale-large .board-mobile-label,
body.font-scale-large .board-mobile-value,
body.font-scale-large .board-mobile-sub,
body.font-scale-large .board-detail-label,
body.font-scale-large .board-detail-value{
    font-size:14px;
    line-height:1.65;
}

body.font-scale-large .board-page-title{
    font-size:28px;
}

body.font-scale-large .board-form-title{
    font-size:24px;
}

body.font-scale-large .board-info-title{
    font-size:20px;
}

body.font-scale-large .board-detail-title{
    font-size:22px;
}

body.font-scale-large .board-mobile-title{
    font-size:17px;
}

body.font-scale-large .board-detail-textarea-read{
    font-size:15px;
    line-height:1.8;
}

body.font-scale-large .board-table th{
    font-size:13px;
    line-height:1.35;
}

body.font-scale-large .board-table td{
    font-size:14px;
    line-height:1.65;
}

body.font-scale-large .board-input,
body.font-scale-large .board-select,
body.font-scale-large .board-mobile-select,
body.font-scale-large .board-form-input,
body.font-scale-large .board-form-select{
    font-size:14px;
    min-height:34px;
}

body.font-scale-large .board-btn,
body.font-scale-large .board-form-btn,
body.font-scale-large a.board-page,
body.font-scale-large .board-page.current,
body.font-scale-large .mystatus,
body.font-scale-large .board-badge,
body.font-scale-large .board-pill{
    font-size:13px;
}

body.font-scale-large .board-selected-file-name{
    font-size:14px;
}

body.font-scale-large .board-selected-file-meta,
body.font-scale-large .board-form-meta{
    font-size:13px;
}

/* 모바일에서도 board쪽 글자 확대 적용 */
@media (max-width:768px){
    body.font-scale-large .board-head{
        font-size:16px;
    }

    body.font-scale-large .board-label,
    body.font-scale-large .board-value,
    body.font-scale-large .board-help,
    body.font-scale-large .board-summary,
    body.font-scale-large .board-form-label,
    body.font-scale-large .board-form-value,
    body.font-scale-large .board-info-label,
    body.font-scale-large .board-info-value,
    body.font-scale-large .board-mobile-label,
    body.font-scale-large .board-mobile-value,
    body.font-scale-large .board-mobile-sub,
    body.font-scale-large .board-detail-label,
    body.font-scale-large .board-detail-value{
        font-size:15px;
    }

    body.font-scale-large .board-mobile-title{
        font-size:18px !important;
    }

    body.font-scale-large .board-detail-textarea-read{
        font-size:15px;
        line-height:1.8;
    }

    body.font-scale-large .board-input,
    body.font-scale-large .board-select,
    body.font-scale-large .board-mobile-select,
    body.font-scale-large .board-form-input,
    body.font-scale-large .board-form-select{
        font-size:15px;
        min-height:36px;
    }

    body.font-scale-large .board-btn,
    body.font-scale-large .board-form-btn{
        font-size:14px !important;
    }
}

/* -----------------------------------------
   2) 줄간격/밀도 조정 - 일반 board 화면 대응
----------------------------------------- */

/* table 영역 */
.board-table-wrap.density-compact .board-table td{
    padding:3px 2px;
    line-height:1.25;
}

.board-table-wrap.density-compact .board-table th{
    padding:5px 3px;
    line-height:1.15;
}

.board-table-wrap.density-normal .board-table td{
    padding:5px 3px;
    line-height:1.45;
}

.board-table-wrap.density-normal .board-table th{
    padding:6px 3px;
    line-height:1.2;
}

.board-table-wrap.density-comfortable .board-table td{
    padding:8px 4px;
    line-height:1.7;
}

.board-table-wrap.density-comfortable .board-table th{
    padding:9px 4px;
    line-height:1.35;
}

/* 모바일 카드 영역 */
.board-mobile-list.density-compact .board-mobile-head,
.board-mobile-list.density-compact .board-mobile-body,
.board-mobile-list.density-compact .board-mobile-actions{
    padding-top:6px;
    padding-bottom:6px;
}

.board-mobile-list.density-compact .board-mobile-body{
    gap:5px;
}

.board-mobile-list.density-compact .board-mobile-row{
    gap:6px;
    line-height:1.35;
}

.board-mobile-list.density-normal .board-mobile-head,
.board-mobile-list.density-normal .board-mobile-body,
.board-mobile-list.density-normal .board-mobile-actions{
    padding-top:8px;
    padding-bottom:8px;
}

.board-mobile-list.density-normal .board-mobile-body{
    gap:8px;
}

.board-mobile-list.density-normal .board-mobile-row{
    gap:8px;
    line-height:1.5;
}

.board-mobile-list.density-comfortable .board-mobile-head,
.board-mobile-list.density-comfortable .board-mobile-body,
.board-mobile-list.density-comfortable .board-mobile-actions{
    padding-top:12px;
    padding-bottom:12px;
}

.board-mobile-list.density-comfortable .board-mobile-body{
    gap:12px;
}

.board-mobile-list.density-comfortable .board-mobile-row{
    gap:10px;
    line-height:1.75;
}

/* 폼/상세 영역도 같이 반응 */
body.density-compact .board-form-row,
body.density-compact .board-info-row{
    padding-top:2px;
    padding-bottom:2px;
}

body.density-normal .board-form-row,
body.density-normal .board-info-row{
    padding-top:4px;
    padding-bottom:4px;
}

body.density-comfortable .board-form-row,
body.density-comfortable .board-info-row{
    padding-top:8px;
    padding-bottom:8px;
}

body.density-compact .board-detail-textarea-read{
    line-height:1.4;
}

body.density-normal .board-detail-textarea-read{
    line-height:1.6;
}

body.density-comfortable .board-detail-textarea-read{
    line-height:1.9;
}

/* density 버튼 active 표시 */
.density-btn.active{
    background:#3154d3 !important;
    color:#fff !important;
    border-color:#3154d3 !important;
}
/* =========================================================
   topbar font-scale / density support for admin-board
   반드시 파일 맨 끝에 둘 것
========================================================= */

/* -----------------------------
   글자크기 조정
----------------------------- */
body.font-scale-large .board-page,
body.font-scale-large .board-form-page,
body.font-scale-large .board-info-page{
    font-size:16px !important;
    line-height:1.7 !important;
}

body.font-scale-large .board-head{
    font-size:18px !important;
}

body.font-scale-large .board-label,
body.font-scale-large .board-value,
body.font-scale-large .board-help,
body.font-scale-large .board-summary,
body.font-scale-large .board-form-label,
body.font-scale-large .board-form-value,
body.font-scale-large .board-info-label,
body.font-scale-large .board-info-value,
body.font-scale-large .board-mobile-label,
body.font-scale-large .board-mobile-value,
body.font-scale-large .board-mobile-sub,
body.font-scale-large .board-detail-label,
body.font-scale-large .board-detail-value{
    font-size:14px !important;
    line-height:1.7 !important;
}

body.font-scale-large .board-table th{
    font-size:13px !important;
    line-height:1.4 !important;
}

body.font-scale-large .board-table td{
    font-size:14px !important;
    line-height:1.7 !important;
}

body.font-scale-large .board-input,
body.font-scale-large .board-select,
body.font-scale-large .board-mobile-select,
body.font-scale-large .board-form-input,
body.font-scale-large .board-form-select{
    font-size:14px !important;
    min-height:34px !important;
}

body.font-scale-large .board-btn,
body.font-scale-large .board-form-btn,
body.font-scale-large .mystatus,
body.font-scale-large .board-badge,
body.font-scale-large .board-pill{
    font-size:13px !important;
}

body.font-scale-large .board-mobile-title{
    font-size:18px !important;
}

body.font-scale-large .board-detail-title{
    font-size:22px !important;
}

body.font-scale-large .board-form-title{
    font-size:24px !important;
}

body.font-scale-large .board-info-title{
    font-size:20px !important;
}

body.font-scale-large .board-detail-textarea-read{
    font-size:15px !important;
    line-height:1.85 !important;
}

/* -----------------------------
   줄간격 / 밀도 - 일반 board table
----------------------------- */
.board-table-wrap.density-compact .board-table th{
    padding:4px 2px !important;
    line-height:1.1 !important;
}

.board-table-wrap.density-compact .board-table td{
    padding:3px 2px !important;
    line-height:1.2 !important;
}

.board-table-wrap.density-normal .board-table th{
    padding:6px 3px !important;
    line-height:1.2 !important;
}

.board-table-wrap.density-normal .board-table td{
    padding:5px 3px !important;
    line-height:1.45 !important;
}

.board-table-wrap.density-comfortable .board-table th{
    padding:9px 4px !important;
    line-height:1.35 !important;
}

.board-table-wrap.density-comfortable .board-table td{
    padding:8px 4px !important;
    line-height:1.8 !important;
}

/* -----------------------------
   줄간격 / 밀도 - 일반 board mobile
----------------------------- */
.board-mobile-list.density-compact .board-mobile-head,
.board-mobile-list.density-compact .board-mobile-body,
.board-mobile-list.density-compact .board-mobile-actions{
    padding-top:6px !important;
    padding-bottom:6px !important;
}

.board-mobile-list.density-compact .board-mobile-body{
    gap:5px !important;
}

.board-mobile-list.density-compact .board-mobile-row{
    gap:6px !important;
    line-height:1.3 !important;
}

.board-mobile-list.density-normal .board-mobile-head,
.board-mobile-list.density-normal .board-mobile-body,
.board-mobile-list.density-normal .board-mobile-actions{
    padding-top:8px !important;
    padding-bottom:8px !important;
}

.board-mobile-list.density-normal .board-mobile-body{
    gap:8px !important;
}

.board-mobile-list.density-normal .board-mobile-row{
    gap:8px !important;
    line-height:1.5 !important;
}

.board-mobile-list.density-comfortable .board-mobile-head,
.board-mobile-list.density-comfortable .board-mobile-body,
.board-mobile-list.density-comfortable .board-mobile-actions{
    padding-top:12px !important;
    padding-bottom:12px !important;
}

.board-mobile-list.density-comfortable .board-mobile-body{
    gap:12px !important;
}

.board-mobile-list.density-comfortable .board-mobile-row{
    gap:10px !important;
    line-height:1.8 !important;
}

/* -----------------------------
   줄간격 / 밀도 - form / detail / info
----------------------------- */
body.density-compact .board-form-row,
body.density-compact .board-info-row{
    padding-top:2px !important;
    padding-bottom:2px !important;
}

body.density-normal .board-form-row,
body.density-normal .board-info-row{
    padding-top:4px !important;
    padding-bottom:4px !important;
}

body.density-comfortable .board-form-row,
body.density-comfortable .board-info-row{
    padding-top:8px !important;
    padding-bottom:8px !important;
}

body.density-compact .board-detail-textarea-read{
    line-height:1.4 !important;
}

body.density-normal .board-detail-textarea-read{
    line-height:1.6 !important;
}

body.density-comfortable .board-detail-textarea-read{
    line-height:1.95 !important;
}

/* 버튼 active 상태 */
.density-btn.active{
    background:#3154d3 !important;
    color:#fff !important;
    border-color:#3154d3 !important;
}

.font-scale-btn.active{
    background:#3154d3 !important;
    color:#fff !important;
    border-color:#3154d3 !important;
}

/* PC - 충전내역 (밝은 노란색) */
.row-recharge td{
    background:#fff9db;   /* 연한 노랑 */
}
/* 모바일 - 충전내역 */
.mobile-recharge{
    background:#fff9db;
}

.align-right .board-mobile-value{
    text-align:right;
}

.align-center .board-mobile-value{
    text-align:center;
}

.align-left .board-mobile-value{
    text-align:left;
}

.board-pagination-wrap{
    position:relative;
    min-height:32px;
    margin-top:10px;
}

.board-pagination{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    flex-wrap:wrap;
    width:100%;
    margin-top:0;
}

.board-page-meta{
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    font-size:12px;
    color:#666;
    white-space:nowrap;
}

.board-page-meta b{
    color:#222;
    font-weight:700;
}

@media (max-width:768px){
    .board-pagination-wrap{
        min-height:auto;
        padding-bottom:18px;
    }

    .board-page-meta{
        position:static;
        transform:none;
        text-align:right;
        margin-top:4px;
    }
}

/* 우측 작은 요약 */
.board-summary-inline{
    font-size:13px;
    color:#666;
}

.board-summary-inline b{
    color:#222;
    font-weight:600;
}

.board-pagination-wrap{
    display:grid;
    grid-template-columns:max-content 1fr max-content;
    align-items:center;
    column-gap:12px;
    margin-top:10px;
    min-height:40px;
}

.board-pagination-left{
    justify-self:start;
    min-width:0;
}

.board-pagination-center{
    justify-self:center;
    min-width:0;
    width:100%;
}

.board-pagination{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    flex-wrap:wrap;
    margin-top:0;
}

.board-pagination-right{
    justify-self:end;
    min-width:0;
}

.board-page-meta{
    font-size:12px;
    color:#666;
    white-space:nowrap;
}

.board-page-meta b{
    color:#222;
    font-weight:700;
}

/* 왼쪽 설정영역 작게 */
.board-filter-box.compact{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:nowrap;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
}

.board-filter-box.compact .board-label{
    margin:0;
    white-space:nowrap;
}

.board-filter-box.compact .board-select{
    min-width:64px;
}

/* 모바일 */
@media (max-width:768px){
    .board-pagination-wrap{
        grid-template-columns:1fr;
        row-gap:8px;
    }

    .board-pagination-left{
        justify-self:start;
    }

    .board-pagination-center{
        justify-self:center;
        width:100%;
    }

    .board-pagination-right{
        justify-self:end;
    }

    .board-page-meta{
        font-size:12px;
        text-align:right;
    }

    .board-filter-box.compact{
        flex-wrap:wrap;
        gap:4px 6px;
    }
}

/* 단체검사 목록에 적용된 모바일 */
.board-danche-page .board-card{overflow:visible}
.board-danche-toolbar-right{justify-content:flex-end}
.board-danche-download-note{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.board-danche-table{min-width:1700px}
.board-danche-table td{vertical-align:top}
.board-danche-table .board-btn{min-height:28px;padding:0 7px}
.board-danche-action-sections{display:grid;gap:8px}
.board-danche-action-section-title{font-size:11px;font-weight:800;color:#3154d3;padding-top:2px}
.board-danche-item .board-mobile-actions{display:block}
.board-danche-item .board-mobile-actions .board-danche-action-sections{width:100%}
.board-danche-item .board-mobile-actions .board-actions-wrap{display:flex;flex-wrap:wrap;gap:6px}
.board-report-float{z-index:9999}
.board-report-float-card{width:320px;background:#fff;border:1px solid #d8dee8;border-radius:14px;box-shadow:0 12px 30px rgba(15,23,42,.18);padding:12px}
.board-report-float-title{font-size:15px;font-weight:800;color:#1e2a5a;margin-bottom:10px}

@media (max-width:768px){
  .board-danche-download-note{padding-left:7px!important;padding-right:7px!important}
  .board-danche-item .board-mobile-actions .board-btn{flex:1 1 calc(50% - 6px)}
  .board-report-float{left:8px!important;right:8px!important;top:60px!important}
  .board-report-float-card{width:100%}
}

/* 단체검사 목록의 버튼 나열 */
.func-wrap{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.func-row{
    display:flex;
    align-items:center;
    gap:6px;
}

.func-label{
    font-size:11px;
    font-weight:700;
    color:#3154d3;
    min-width:55px;
}

.func-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:4px;
}

.func-buttons .board-btn{
    padding:3px 6px;
    font-size:11px;
    white-space:nowrap;
}

/* =========================================================
   Scroll fix for desktop mouse wheel in mobile breakpoint
   Added 2026-03-30
   목적:
   - PC에서 창을 줄여 모바일 breakpoint로 들어갔을 때
     마우스 휠 스크롤이 막히는 문제 방지
   - 세로 스크롤은 html/body가 담당하고,
     가로 스크롤은 필요한 영역(.board-table-wrap 등)만 담당
========================================================= */
html,
body{
    height:auto !important;
    min-height:100%;
    overflow-y:auto !important;
    overscroll-behavior-y:auto;
}

body{
    position:static !important;
}

.board-page,
.board-page-tight,
.board-page-wrap,
.board-form-page,
.board-info-page,
.board-list-page,
.board-recharge-page,
.board-page-analysis,
.board-body,
.board-body-padless,
.board-card,
.board-form-card,
.board-info-card,
.board-detail-card{
    overflow:visible !important;
}

.board-table-wrap,
.analysis25-table-wrap,
.board-recharge-table-wrap{
    overflow-x:auto;
    overflow-y:visible;
    -webkit-overflow-scrolling:touch;
}

@media (max-width:768px){
    html,
    body{
        height:auto !important;
        min-height:100%;
        overflow-x:hidden !important;
        overflow-y:auto !important;
        overscroll-behavior-y:auto;
    }

    body{
        position:static !important;
        -webkit-overflow-scrolling:touch;
    }

    .board-page,
    .board-page-tight,
    .board-page-wrap,
    .board-form-page,
    .board-info-page,
    .board-list-page,
    .board-recharge-page,
    .board-page-analysis,
    .board-body,
    .board-body-padless,
    .board-card,
    .board-form-card,
    .board-info-card,
    .board-detail-card,
    .board-mobile-list,
    .board-mobile-item{
        overflow:visible !important;
    }

    /* 툴바/검색영역의 가로 스크롤은 유지하되 세로 스크롤을 막지 않도록 함 */
    .toolbar-mobile-2row .toolbar-row-top,
    .toolbar-mobile-2row .toolbar-row-bottom,
    .board-filter-row{
        overscroll-behavior-x:contain;
        overscroll-behavior-y:auto;
    }
}


/* =========================================================
   Extended Button / Badge Color System
   Added 2026-03-30
   목적:
   - solid 버튼(채움형) + transparent/outline 버튼(투명형) 추가
   - badge 색상군/여백/높이 옵션 확장
   사용 예:
   <button class="board-btn red">삭제</button>
   <button class="board-btn line-red">삭제</button>
   <button class="board-btn soft-red btn-pad-tight">삭제</button>
   <span class="board-badge badge-purple badge-lg">보류</span>
========================================================= */
:root{
    --board-red:#dc2626;
    --board-red-soft:#fef2f2;
    --board-red-line:#fecaca;

    --board-green:#16a34a;
    --board-green-soft:#ecfdf5;
    --board-green-line:#bbf7d0;

    --board-ochre:#b45309;
    --board-ochre-soft:#fff7ed;
    --board-ochre-line:#fdba74;

    --board-blue:#2563eb;
    --board-blue-soft:#eff6ff;
    --board-blue-line:#bfdbfe;

    --board-purple:#7c3aed;
    --board-purple-soft:#f5f3ff;
    --board-purple-line:#ddd6fe;

    --board-yellow:#ca8a04;
    --board-yellow-soft:#fefce8;
    --board-yellow-line:#fde68a;

    --board-black:#111827;
    --board-black-soft:#f3f4f6;
    --board-black-line:#d1d5db;

    --board-gray:#6b7280;
    --board-gray-soft:#f3f4f6;
    --board-gray-line:#d1d5db;

    --board-sky:#0284c7;
    --board-sky-soft:#f0f9ff;
    --board-sky-line:#bae6fd;
}

/* ---------- board button variants ---------- */
.board-btn.red,
.board-btn.green,
.board-btn.ochre,
.board-btn.blue,
.board-btn.purple,
.board-btn.black,
.board-btn.sky{
    color:#fff;
}

.board-btn.red{ background:var(--board-red); border-color:var(--board-red); }
.board-btn.green{ background:var(--board-green); border-color:var(--board-green); }
.board-btn.ochre{ background:var(--board-ochre); border-color:var(--board-ochre); }
.board-btn.blue{ background:var(--board-blue); border-color:var(--board-blue); }
.board-btn.purple{ background:var(--board-purple); border-color:var(--board-purple); }
.board-btn.yellow{ color:#7a5400; }
.board-btn.black{ background:var(--board-black); border-color:var(--board-black); }
.board-btn.gray{ color:#cfd3da; }
.board-btn.sky{ background:var(--board-sky); border-color:var(--board-sky); }

.board-btn.soft-red{ background:var(--board-red-soft); color:var(--board-red); border-color:var(--board-red-line); }
.board-btn.soft-green{ background:var(--board-green-soft); color:#15803d; border-color:var(--board-green-line); }
.board-btn.soft-ochre{ background:var(--board-ochre-soft); color:var(--board-ochre); border-color:var(--board-ochre-line); }
.board-btn.soft-blue{ background:var(--board-blue-soft); color:var(--board-blue); border-color:var(--board-blue-line); }
.board-btn.soft-purple{ background:var(--board-purple-soft); color:var(--board-purple); border-color:var(--board-purple-line); }
.board-btn.soft-yellow{ background:var(--board-yellow-soft); color:#a16207; border-color:var(--board-yellow-line); }
.board-btn.soft-black{ background:var(--board-black-soft); color:var(--board-black); border-color:var(--board-black-line); }
.board-btn.soft-gray{ background:var(--board-gray-soft); color:var(--board-gray); border-color:var(--board-gray-line); }
.board-btn.soft-sky{ background:var(--board-sky-soft); color:var(--board-sky); border-color:var(--board-sky-line); }

.board-btn.line-red,
.board-btn.line-green,
.board-btn.line-ochre,
.board-btn.line-blue,
.board-btn.line-purple,
.board-btn.line-yellow,
.board-btn.line-black,
.board-btn.line-gray,
.board-btn.line-sky,
.board-btn.ghost-red,
.board-btn.ghost-green,
.board-btn.ghost-ochre,
.board-btn.ghost-blue,
.board-btn.ghost-purple,
.board-btn.ghost-yellow,
.board-btn.ghost-black,
.board-btn.ghost-gray,
.board-btn.ghost-sky{
    background:transparent;
}

.board-btn.line-red,.board-btn.ghost-red{ color:var(--board-red); border-color:var(--board-red-line); }
.board-btn.line-green,.board-btn.ghost-green{ color:#15803d; border-color:var(--board-green-line); }
.board-btn.line-ochre,.board-btn.ghost-ochre{ color:var(--board-ochre); border-color:var(--board-ochre-line); }
.board-btn.line-blue,.board-btn.ghost-blue{ color:var(--board-blue); border-color:var(--board-blue-line); }
.board-btn.line-purple,.board-btn.ghost-purple{ color:var(--board-purple); border-color:var(--board-purple-line); }
.board-btn.line-yellow,.board-btn.ghost-yellow{ color:#a16207; border-color:var(--board-yellow-line); }
.board-btn.line-black,.board-btn.ghost-black{ color:var(--board-black); border-color:var(--board-black-line); }
.board-btn.line-gray,.board-btn.ghost-gray{ color:var(--board-gray); border-color:var(--board-gray-line); }
.board-btn.line-sky,.board-btn.ghost-sky{ color:var(--board-sky); border-color:var(--board-sky-line); }

.board-btn.line-red:hover,.board-btn.ghost-red:hover{ background:var(--board-red-soft); }
.board-btn.line-green:hover,.board-btn.ghost-green:hover{ background:var(--board-green-soft); }
.board-btn.line-ochre:hover,.board-btn.ghost-ochre:hover{ background:var(--board-ochre-soft); }
.board-btn.line-blue:hover,.board-btn.ghost-blue:hover{ background:var(--board-blue-soft); }
.board-btn.line-purple:hover,.board-btn.ghost-purple:hover{ background:var(--board-purple-soft); }
.board-btn.line-yellow:hover,.board-btn.ghost-yellow:hover{ background:var(--board-yellow-soft); }
.board-btn.line-black:hover,.board-btn.ghost-black:hover{ background:var(--board-black-soft); }
.board-btn.line-gray:hover,.board-btn.ghost-gray:hover{ background:var(--board-gray-soft); }
.board-btn.line-sky:hover,.board-btn.ghost-sky:hover{ background:var(--board-sky-soft); }

/* height / padding options */
.board-btn.btn-xs{ min-height:24px; padding:0 6px; font-size:11px; border-radius:6px; }
.board-btn.btn-sm{ min-height:28px; padding:0 8px; font-size:11px; border-radius:7px; }
.board-btn.btn-md{ min-height:32px; padding:0 10px; }
.board-btn.btn-lg{ min-height:38px; padding:0 14px; font-size:13px; border-radius:10px; }
.board-btn.btn-xl{ min-height:44px; padding:0 18px; font-size:14px; border-radius:12px; }

.board-btn.btn-pad-tight{ padding-left:6px; padding-right:6px; }
.board-btn.btn-pad-narrow{ padding-left:8px; padding-right:8px; }
.board-btn.btn-pad-wide{ padding-left:14px; padding-right:14px; }
.board-btn.btn-pad-xwide{ padding-left:20px; padding-right:20px; }

/* ---------- board badge variants ---------- */
.board-badge,
.board-pill,
.mystatus{
    border:1px solid transparent;
}

.board-badge.badge-red{ background:var(--board-red-soft); color:var(--board-red); border-color:var(--board-red-line); }
.board-badge.badge-green{ background:var(--board-green-soft); color:#15803d; border-color:var(--board-green-line); }
.board-badge.badge-ochre{ background:var(--board-ochre-soft); color:var(--board-ochre); border-color:var(--board-ochre-line); }
.board-badge.badge-blue{ background:var(--board-blue-soft); color:var(--board-blue); border-color:var(--board-blue-line); }
.board-badge.badge-purple{ background:var(--board-purple-soft); color:var(--board-purple); border-color:var(--board-purple-line); }
.board-badge.badge-yellow{ background:var(--board-yellow-soft); color:#a16207; border-color:var(--board-yellow-line); }
.board-badge.badge-black{ background:var(--board-black); color:#fff; border-color:var(--board-black); }
.board-badge.badge-gray{ background:var(--board-gray-soft); color:var(--board-gray); border-color:var(--board-gray-line); }
.board-badge.badge-sky{ background:var(--board-sky-soft); color:var(--board-sky); border-color:var(--board-sky-line); }

.board-badge.badge-outline-red{ background:#fff; color:var(--board-red); border-color:var(--board-red-line); }
.board-badge.badge-outline-green{ background:#fff; color:#15803d; border-color:var(--board-green-line); }
.board-badge.badge-outline-ochre{ background:#fff; color:var(--board-ochre); border-color:var(--board-ochre-line); }
.board-badge.badge-outline-blue{ background:#fff; color:var(--board-blue); border-color:var(--board-blue-line); }
.board-badge.badge-outline-purple{ background:#fff; color:var(--board-purple); border-color:var(--board-purple-line); }
.board-badge.badge-outline-yellow{ background:#fff; color:#a16207; border-color:var(--board-yellow-line); }
.board-badge.badge-outline-black{ background:#fff; color:var(--board-black); border-color:var(--board-black-line); }
.board-badge.badge-outline-gray{ background:#fff; color:var(--board-gray); border-color:var(--board-gray-line); }
.board-badge.badge-outline-sky{ background:#fff; color:var(--board-sky); border-color:var(--board-sky-line); }

.board-badge.badge-xs{ min-height:18px; padding:0 5px; font-size:10px; }
.board-badge.badge-sm{ min-height:20px; padding:0 6px; font-size:10px; }
.board-badge.badge-md{ min-height:24px; padding:0 8px; font-size:11px; }
.board-badge.badge-lg{ min-height:28px; padding:0 10px; font-size:12px; }
.board-badge.badge-xl{ min-height:32px; padding:0 12px; font-size:13px; }

.board-badge.badge-pad-tight{ padding-left:5px; padding-right:5px; }
.board-badge.badge-pad-narrow{ padding-left:7px; padding-right:7px; }
.board-badge.badge-pad-wide{ padding-left:12px; padding-right:12px; }
.board-badge.badge-pad-xwide{ padding-left:16px; padding-right:16px; }

/* same palette for board-pill */
.board-pill.pill-red{ background:var(--board-red-soft); color:var(--board-red); border-color:var(--board-red-line); }
.board-pill.pill-green{ background:var(--board-green-soft); color:#15803d; border-color:var(--board-green-line); }
.board-pill.pill-ochre{ background:var(--board-ochre-soft); color:var(--board-ochre); border-color:var(--board-ochre-line); }
.board-pill.pill-blue{ background:var(--board-blue-soft); color:var(--board-blue); border-color:var(--board-blue-line); }
.board-pill.pill-purple{ background:var(--board-purple-soft); color:var(--board-purple); border-color:var(--board-purple-line); }
.board-pill.pill-yellow{ background:var(--board-yellow-soft); color:#a16207; border-color:var(--board-yellow-line); }
.board-pill.pill-black{ background:var(--board-black); color:#fff; border-color:var(--board-black); }
.board-pill.pill-gray{ background:var(--board-gray-soft); color:var(--board-gray); border-color:var(--board-gray-line); }
.board-pill.pill-sky{ background:var(--board-sky-soft); color:var(--board-sky); border-color:var(--board-sky-line); }


/* =========================================================
   Font Scale 3 Step Extension for admin-board
   normal / large / xlarge
   Added 2026-03-30
========================================================= */

body.font-scale-xlarge .board-page,
body.font-scale-xlarge .board-form-page,
body.font-scale-xlarge .board-info-page{
    font-size:18px !important;
    line-height:1.9 !important;
}

body.font-scale-xlarge .board-head{
    font-size:20px !important;
}

body.font-scale-xlarge .board-label,
body.font-scale-xlarge .board-value,
body.font-scale-xlarge .board-help,
body.font-scale-xlarge .board-summary,
body.font-scale-xlarge .board-form-label,
body.font-scale-xlarge .board-form-value,
body.font-scale-xlarge .board-info-label,
body.font-scale-xlarge .board-info-value,
body.font-scale-xlarge .board-mobile-label,
body.font-scale-xlarge .board-mobile-value,
body.font-scale-xlarge .board-mobile-sub,
body.font-scale-xlarge .board-detail-label,
body.font-scale-xlarge .board-detail-value,
body.font-scale-xlarge .board-summary-label{
    font-size:16px !important;
    line-height:1.9 !important;
}

body.font-scale-xlarge .board-page-title{
    font-size:32px !important;
}

body.font-scale-xlarge .board-form-title{
    font-size:27px !important;
}

body.font-scale-xlarge .board-info-title{
    font-size:23px !important;
}

body.font-scale-xlarge .board-detail-title{
    font-size:25px !important;
}

body.font-scale-xlarge .board-mobile-title{
    font-size:20px !important;
}

body.font-scale-xlarge .board-detail-subtitle,
body.font-scale-xlarge .board-section-title,
body.font-scale-xlarge .board-summary-inline,
body.font-scale-xlarge .board-page-desc,
body.font-scale-xlarge .board-summary-value,
body.font-scale-xlarge .board-selected-file-name{
    font-size:16px !important;
}

body.font-scale-xlarge .board-detail-textarea-read{
    font-size:17px !important;
    line-height:2 !important;
}

body.font-scale-xlarge .board-table th{
    font-size:15px !important;
    line-height:1.5 !important;
}

body.font-scale-xlarge .board-table td{
    font-size:16px !important;
    line-height:1.9 !important;
}

body.font-scale-xlarge .board-input,
body.font-scale-xlarge .board-select,
body.font-scale-xlarge .board-mobile-select,
body.font-scale-xlarge .board-form-input,
body.font-scale-xlarge .board-form-select{
    font-size:16px !important;
    min-height:38px !important;
}

body.font-scale-xlarge .board-btn,
body.font-scale-xlarge .board-form-btn,
body.font-scale-xlarge a.board-page,
body.font-scale-xlarge .board-page.current,
body.font-scale-xlarge .mystatus,
body.font-scale-xlarge .board-badge,
body.font-scale-xlarge .board-pill,
body.font-scale-xlarge .board-tag{
    font-size:15px !important;
}

body.font-scale-xlarge .board-selected-file-meta,
body.font-scale-xlarge .board-form-meta,
body.font-scale-xlarge .board-album-meta,
body.font-scale-xlarge .board-mobile-title-sub,
body.font-scale-xlarge .board-page-meta{
    font-size:14px !important;
}

@media (max-width:768px){
    body.font-scale-xlarge .board-head{
        font-size:18px !important;
    }

    body.font-scale-xlarge .board-label,
    body.font-scale-xlarge .board-value,
    body.font-scale-xlarge .board-help,
    body.font-scale-xlarge .board-summary,
    body.font-scale-xlarge .board-form-label,
    body.font-scale-xlarge .board-form-value,
    body.font-scale-xlarge .board-info-label,
    body.font-scale-xlarge .board-info-value,
    body.font-scale-xlarge .board-mobile-label,
    body.font-scale-xlarge .board-mobile-value,
    body.font-scale-xlarge .board-mobile-sub,
    body.font-scale-xlarge .board-detail-label,
    body.font-scale-xlarge .board-detail-value{
        font-size:16px !important;
    }

    body.font-scale-xlarge .board-mobile-title{
        font-size:20px !important;
    }

    body.font-scale-xlarge .board-detail-textarea-read{
        font-size:16px !important;
        line-height:1.95 !important;
    }

    body.font-scale-xlarge .board-input,
    body.font-scale-xlarge .board-select,
    body.font-scale-xlarge .board-mobile-select,
    body.font-scale-xlarge .board-form-input,
    body.font-scale-xlarge .board-form-select{
        font-size:16px !important;
        min-height:38px !important;
    }

    body.font-scale-xlarge .board-btn,
    body.font-scale-xlarge .board-form-btn{
        font-size:15px !important;
    }
}


/* =========================================================
   Unified UI Size / Color System
   Added 2026-03-30 - backward-compatible extension
========================================================= */

/* ---- shared size tokens for board-side components ---- */
.ui-size.xxxs{ width:20px !important; }
.ui-size.xxs{ width:40px !important; }
.ui-size.xs{ width:60px !important; }
.ui-size.sm{ width:88px !important; }
.ui-size.md{ width:120px !important; }
.ui-size.lg{ width:152px !important; }
.ui-size.xl{ width:184px !important; }
.ui-size.xxl{ width:264px !important; }
.ui-size.date{ width:86px !important; }

/* input/select/button/badge/tag unified */
.ui-input,
.ui-select{
    min-height:30px;
    border:1px solid #d8dee8;
    border-radius:8px;
    padding:0 8px;
    background:#fff;
    font-size:12px;
    color:#111827;
    box-sizing:border-box;
    max-width:100%;
    vertical-align:middle;
}
.ui-input:focus,
.ui-select:focus{
    outline:none;
    border-color:#9db3ff;
    box-shadow:0 0 0 3px rgba(49,84,211,0.10);
}

.board-input.ui-size.xxxs, .board-select.ui-size.xxxs, .board-form-input.ui-size.xxxs, .board-form-select.ui-size.xxxs,
.ui-input.ui-size.xxxs, .ui-select.ui-size.xxxs{ width:20px !important; }
.board-input.ui-size.xxs, .board-select.ui-size.xxs, .board-form-input.ui-size.xxs, .board-form-select.ui-size.xxs,
.ui-input.ui-size.xxs, .ui-select.ui-size.xxs{ width:40px !important; }
.board-input.ui-size.xs, .board-select.ui-size.xs, .board-form-input.ui-size.xs, .board-form-select.ui-size.xs,
.ui-input.ui-size.xs, .ui-select.ui-size.xs{ width:60px !important; }
.board-input.ui-size.sm, .board-select.ui-size.sm, .board-form-input.ui-size.sm, .board-form-select.ui-size.sm,
.ui-input.ui-size.sm, .ui-select.ui-size.sm{ width:88px !important; }
.board-input.ui-size.md, .board-select.ui-size.md, .board-form-input.ui-size.md, .board-form-select.ui-size.md,
.ui-input.ui-size.md, .ui-select.ui-size.md{ width:120px !important; }
.board-input.ui-size.lg, .board-select.ui-size.lg, .board-form-input.ui-size.lg, .board-form-select.ui-size.lg,
.ui-input.ui-size.lg, .ui-select.ui-size.lg{ width:152px !important; }
.board-input.ui-size.xl, .board-select.ui-size.xl, .board-form-input.ui-size.xl, .board-form-select.ui-size.xl,
.ui-input.ui-size.xl, .ui-select.ui-size.xl{ width:184px !important; }
.board-input.ui-size.xxl, .board-select.ui-size.xxl, .board-form-input.ui-size.xxl, .board-form-select.ui-size.xxl,
.ui-input.ui-size.xxl, .ui-select.ui-size.xxl{ width:264px !important; }
.board-input.ui-size.date, .board-select.ui-size.date, .board-form-input.ui-size.date, .board-form-select.ui-size.date,
.ui-input.ui-size.date, .ui-select.ui-size.date{ width:86px !important; }

.ui-btn,
.ui-badge,
.ui-tag{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
    box-sizing:border-box;
}

.ui-btn{
    min-height:32px;
    padding:0 8px;
    border-radius:8px;
    border:1px solid #d8dee8;
    background:#f8fafc;
    color:#344054;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
    text-decoration:none;
    transition:all .15s ease;
}
.ui-btn:hover{ filter:brightness(.99); }

.ui-badge,
.ui-tag{
    min-height:24px;
    padding:0 8px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
    line-height:1;
    border:1px solid transparent;
}
.ui-tag{
    border-radius:8px;
    min-height:26px;
    font-weight:700;
}

/* button/badge/tag size */
.ui-btn.btn-xs, .board-btn.btn-xs{ min-height:24px; padding:0 6px; font-size:11px; border-radius:6px; }
.ui-btn.btn-sm, .board-btn.btn-sm{ min-height:28px; padding:0 8px; font-size:11px; }
.ui-btn.btn-md, .board-btn.btn-md{ min-height:32px; padding:0 10px; font-size:12px; }
.ui-btn.btn-lg, .board-btn.btn-lg{ min-height:38px; padding:0 14px; font-size:13px; }
.ui-btn.btn-xl, .board-btn.btn-xl{ min-height:44px; padding:0 18px; font-size:14px; border-radius:10px; }

.ui-badge.badge-xs, .board-badge.badge-xs, .ui-tag.tag-xs, .board-tag.tag-xs{ min-height:18px; padding:0 6px; font-size:10px; }
.ui-badge.badge-sm, .board-badge.badge-sm, .ui-tag.tag-sm, .board-tag.tag-sm{ min-height:22px; padding:0 7px; font-size:10px; }
.ui-badge.badge-md, .board-badge.badge-md, .ui-tag.tag-md, .board-tag.tag-md{ min-height:24px; padding:0 8px; font-size:11px; }
.ui-badge.badge-lg, .board-badge.badge-lg, .ui-tag.tag-lg, .board-tag.tag-lg{ min-height:28px; padding:0 10px; font-size:12px; }
.ui-badge.badge-xl, .board-badge.badge-xl, .ui-tag.tag-xl, .board-tag.tag-xl{ min-height:32px; padding:0 12px; font-size:13px; }

.btn-pad-tight, .badge-pad-tight, .tag-pad-tight{ padding-left:4px !important; padding-right:4px !important; }
.btn-pad-narrow, .badge-pad-narrow, .tag-pad-narrow{ padding-left:6px !important; padding-right:6px !important; }
.btn-pad-wide, .badge-pad-wide, .tag-pad-wide{ padding-left:12px !important; padding-right:12px !important; }
.btn-pad-xwide, .badge-pad-xwide, .tag-pad-xwide{ padding-left:16px !important; padding-right:16px !important; }

/* text colors */
.txt-red{ color:#b91c1c !important; }
.txt-green{ color:#15803d !important; }
.txt-ochre{ color:#9a6700 !important; }
.txt-blue{ color:#1d4ed8 !important; }
.txt-purple{ color:#7c3aed !important; }
.txt-yellow{ color:#a16207 !important; }
.txt-black{ color:#111827 !important; }
.txt-gray{ color:#4b5563 !important; }
.txt-sky{ color:#0369a1 !important; }
.txt-white{ color:#ffffff !important; }

/* board tag base */
.board-tag{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:26px;
    padding:0 8px;
    border-radius:8px;
    font-size:11px;
    font-weight:700;
    line-height:1;
    border:1px solid transparent;
    background:#f8fafc;
    color:#334155;
    white-space:nowrap;
}

/* fill / soft / outline palettes for input, button, badge, tag */
.board-input.input-ochre,
.board-select.input-ochre,
.board-form-input.input-ochre,
.board-form-select.input-ochre,
.ui-input.input-ochre,
.ui-select.input-ochre{
    background:#fff7ed; border-color:#fdba74; color:#9a3412;
}
.board-input.input-purple,
.board-select.input-purple,
.board-form-input.input-purple,
.board-form-select.input-purple,
.ui-input.input-purple,
.ui-select.input-purple{
    background:#f5f3ff; border-color:#c4b5fd; color:#6d28d9;
}
.board-input.input-black,
.board-select.input-black,
.board-form-input.input-black,
.board-form-select.input-black,
.ui-input.input-black,
.ui-select.input-black{
    background:#1f2937; border-color:#111827; color:#fff;
}
.board-input.input-sky,
.board-select.input-sky,
.board-form-input.input-sky,
.board-form-select.input-sky,
.ui-input.input-sky,
.ui-select.input-sky{
    background:#f0f9ff; border-color:#7dd3fc; color:#0369a1;
}
.board-input.input-outline-red,
.board-select.input-outline-red,
.board-form-input.input-outline-red,
.board-form-select.input-outline-red,
.ui-input.input-outline-red,
.ui-select.input-outline-red{
    background:#fff; border-color:#fca5a5; color:#b91c1c;
}
.board-input.input-outline-green,
.board-select.input-outline-green,
.board-form-input.input-outline-green,
.board-form-select.input-outline-green,
.ui-input.input-outline-green,
.ui-select.input-outline-green{
    background:#fff; border-color:#86efac; color:#15803d;
}
.board-input.input-outline-ochre,
.board-select.input-outline-ochre,
.board-form-input.input-outline-ochre,
.board-form-select.input-outline-ochre,
.ui-input.input-outline-ochre,
.ui-select.input-outline-ochre{
    background:#fff; border-color:#fdba74; color:#9a3412;
}
.board-input.input-outline-blue,
.board-select.input-outline-blue,
.board-form-input.input-outline-blue,
.board-form-select.input-outline-blue,
.ui-input.input-outline-blue,
.ui-select.input-outline-blue{
    background:#fff; border-color:#93c5fd; color:#1d4ed8;
}
.board-input.input-outline-purple,
.board-select.input-outline-purple,
.board-form-input.input-outline-purple,
.board-form-select.input-outline-purple,
.ui-input.input-outline-purple,
.ui-select.input-outline-purple{
    background:#fff; border-color:#c4b5fd; color:#7c3aed;
}
.board-input.input-outline-yellow,
.board-select.input-outline-yellow,
.board-form-input.input-outline-yellow,
.board-form-select.input-outline-yellow,
.ui-input.input-outline-yellow,
.ui-select.input-outline-yellow{
    background:#fff; border-color:#fcd34d; color:#a16207;
}
.board-input.input-outline-black,
.board-select.input-outline-black,
.board-form-input.input-outline-black,
.board-form-select.input-outline-black,
.ui-input.input-outline-black,
.ui-select.input-outline-black{
    background:#fff; border-color:#6b7280; color:#111827;
}
.board-input.input-outline-gray,
.board-select.input-outline-gray,
.board-form-input.input-outline-gray,
.board-form-select.input-outline-gray,
.ui-input.input-outline-gray,
.ui-select.input-outline-gray{
    background:#fff; border-color:#d1d5db; color:#4b5563;
}
.board-input.input-outline-sky,
.board-select.input-outline-sky,
.board-form-input.input-outline-sky,
.board-form-select.input-outline-sky,
.ui-input.input-outline-sky,
.ui-select.input-outline-sky{
    background:#fff; border-color:#7dd3fc; color:#0369a1;
}

.red, .badge-red, .tag-red{ background:#dc2626 !important; border-color:#dc2626 !important; color:#fff !important; }
.green, .badge-green, .tag-green{ background:#16a34a !important; border-color:#16a34a !important; color:#fff !important; }
.ochre, .badge-ochre, .tag-ochre{ background:#b45309 !important; border-color:#b45309 !important; color:#fff !important; }
.blue, .badge-blue, .tag-blue{ background:#2563eb !important; border-color:#2563eb !important; color:#fff !important; }
.purple, .badge-purple, .tag-purple{ background:#7c3aed !important; border-color:#7c3aed !important; color:#fff !important; }
.yellow, .badge-yellow, .tag-yellow{ background:#facc15 !important; border-color:#eab308 !important; color:#111827 !important; }
.black, .badge-black, .tag-black{ background:#111827 !important; border-color:#111827 !important; color:#fff !important; }
.gray, .badge-gray, .tag-gray{ background:#6b7280 !important; border-color:#6b7280 !important; color:#fff !important; }
.sky, .badge-sky, .tag-sky{ background:#0ea5e9 !important; border-color:#0ea5e9 !important; color:#fff !important; }

.soft-red{ background:#fef2f2 !important; border-color:#fecaca !important; color:#b91c1c !important; }
.soft-green{ background:#ecfdf5 !important; border-color:#86efac !important; color:#166534 !important; }
.soft-ochre{ background:#fff7ed !important; border-color:#fdba74 !important; color:#9a3412 !important; }
.soft-blue{ background:#eef4ff !important; border-color:#93c5fd !important; color:#1e3a8a !important; }
.soft-purple{ background:#f5f3ff !important; border-color:#c4b5fd !important; color:#6d28d9 !important; }
.soft-yellow{ background:#fffbeb !important; border-color:#fcd34d !important; color:#92400e !important; }
.soft-black{ background:#f3f4f6 !important; border-color:#9ca3af !important; color:#111827 !important; }
.soft-gray{ background:#f3f4f6 !important; border-color:#d1d5db !important; color:#374151 !important; }
.soft-sky{ background:#f0f9ff !important; border-color:#7dd3fc !important; color:#0369a1 !important; }

.line-red, .ghost-red, .badge-outline-red, .tag-outline-red{ background:transparent !important; border-color:#fca5a5 !important; color:#b91c1c !important; }
.line-green, .ghost-green, .badge-outline-green, .tag-outline-green{ background:transparent !important; border-color:#86efac !important; color:#15803d !important; }
.line-ochre, .ghost-ochre, .badge-outline-ochre, .tag-outline-ochre{ background:transparent !important; border-color:#fdba74 !important; color:#9a3412 !important; }
.line-blue, .ghost-blue, .badge-outline-blue, .tag-outline-blue{ background:transparent !important; border-color:#93c5fd !important; color:#1d4ed8 !important; }
.line-purple, .ghost-purple, .badge-outline-purple, .tag-outline-purple{ background:transparent !important; border-color:#c4b5fd !important; color:#7c3aed !important; }
.line-yellow, .ghost-yellow, .badge-outline-yellow, .tag-outline-yellow{ background:transparent !important; border-color:#fcd34d !important; color:#a16207 !important; }
.line-black, .ghost-black, .badge-outline-black, .tag-outline-black{ background:transparent !important; border-color:#6b7280 !important; color:#111827 !important; }
.line-gray, .ghost-gray, .badge-outline-gray, .tag-outline-gray{ background:transparent !important; border-color:#d1d5db !important; color:#4b5563 !important; }
.line-sky, .ghost-sky, .badge-outline-sky, .tag-outline-sky{ background:transparent !important; border-color:#7dd3fc !important; color:#0369a1 !important; }

/* spacing harmony */
.board-label.gap-xs, .ui-label.gap-xs{ margin-right:2px; }
.board-label.gap-sm, .ui-label.gap-sm{ margin-right:4px; }
.board-label.gap-md, .ui-label.gap-md{ margin-right:6px; }
.board-label.gap-lg, .ui-label.gap-lg{ margin-right:8px; }
.board-label.gap-xl, .ui-label.gap-xl{ margin-right:12px; }

/* xlarge font scale */
body.font-scale-xlarge .board-page,
body.font-scale-xlarge .board-form-page,
body.font-scale-xlarge .board-info-page{
    font-size:18px !important;
    line-height:1.82 !important;
}
body.font-scale-xlarge .board-head{ font-size:20px !important; }
body.font-scale-xlarge .board-label,
body.font-scale-xlarge .board-value,
body.font-scale-xlarge .board-help,
body.font-scale-xlarge .board-summary,
body.font-scale-xlarge .board-form-label,
body.font-scale-xlarge .board-form-value,
body.font-scale-xlarge .board-info-label,
body.font-scale-xlarge .board-info-value,
body.font-scale-xlarge .board-mobile-label,
body.font-scale-xlarge .board-mobile-value,
body.font-scale-xlarge .board-mobile-sub,
body.font-scale-xlarge .board-detail-label,
body.font-scale-xlarge .board-detail-value{
    font-size:16px !important;
    line-height:1.82 !important;
}
body.font-scale-xlarge .board-page-title{ font-size:31px !important; }
body.font-scale-xlarge .board-form-title{ font-size:27px !important; }
body.font-scale-xlarge .board-info-title{ font-size:23px !important; }
body.font-scale-xlarge .board-detail-title{ font-size:25px !important; }
body.font-scale-xlarge .board-mobile-title{ font-size:20px !important; }
body.font-scale-xlarge .board-detail-textarea-read{ font-size:17px !important; line-height:1.95 !important; }
body.font-scale-xlarge .board-table th{ font-size:15px !important; line-height:1.5 !important; }
body.font-scale-xlarge .board-table td{ font-size:16px !important; line-height:1.82 !important; }
body.font-scale-xlarge .board-input,
body.font-scale-xlarge .board-select,
body.font-scale-xlarge .board-mobile-select,
body.font-scale-xlarge .board-form-input,
body.font-scale-xlarge .board-form-select,
body.font-scale-xlarge .ui-input,
body.font-scale-xlarge .ui-select{ font-size:16px !important; min-height:38px !important; }
body.font-scale-xlarge .board-btn,
body.font-scale-xlarge .board-form-btn,
body.font-scale-xlarge .board-badge,
body.font-scale-xlarge .board-pill,
body.font-scale-xlarge .board-tag,
body.font-scale-xlarge .ui-btn,
body.font-scale-xlarge .ui-badge,
body.font-scale-xlarge .ui-tag{ font-size:15px !important; }

@media (max-width:768px){
    body.font-scale-xlarge .board-head{ font-size:18px !important; }
    body.font-scale-xlarge .board-label,
    body.font-scale-xlarge .board-value,
    body.font-scale-xlarge .board-help,
    body.font-scale-xlarge .board-summary,
    body.font-scale-xlarge .board-form-label,
    body.font-scale-xlarge .board-form-value,
    body.font-scale-xlarge .board-info-label,
    body.font-scale-xlarge .board-info-value,
    body.font-scale-xlarge .board-mobile-label,
    body.font-scale-xlarge .board-mobile-value,
    body.font-scale-xlarge .board-mobile-sub,
    body.font-scale-xlarge .board-detail-label,
    body.font-scale-xlarge .board-detail-value{ font-size:17px !important; }
    body.font-scale-xlarge .board-mobile-title{ font-size:21px !important; }
    body.font-scale-xlarge .board-input,
    body.font-scale-xlarge .board-select,
    body.font-scale-xlarge .board-mobile-select,
    body.font-scale-xlarge .board-form-input,
    body.font-scale-xlarge .board-form-select,
    body.font-scale-xlarge .ui-input,
    body.font-scale-xlarge .ui-select{ font-size:17px !important; min-height:40px !important; }
    body.font-scale-xlarge .board-btn,
    body.font-scale-xlarge .board-form-btn,
    body.font-scale-xlarge .ui-btn{ font-size:15px !important; }
}
/* =========================================================
   Responsive Width Fix (PC 기준 자동 폭 맞춤)
   Added 2026-03-30
========================================================= */

/* 1. 부모 컨테이너가 줄어들 수 있도록 */
.board-page,
.board-card,
.board-body,
.board-table-wrap,
.analysis25-table-wrap,
.main-content-card,
.main-content-inner{
    min-width:0 !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box;
}

/* 2. 테이블이 부모폭을 넘지 않도록 */
.board-table,
.board-table.customer-analysis-table,
.analysis25-table-wrap.view-wide .board-table,
.analysis25-table-wrap.view-normal .board-table,
.analysis25-table-wrap.view-compact .board-table{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    table-layout:fixed !important;
}

/* 3. 기존 강제 min-width 무력화 */
.board-table{
    min-width:0 !important;
}

.board-table.customer-analysis-table{
    min-width:0 !important;
}

.analysis25-table-wrap.view-wide .board-table{
    min-width:0 !important;
}

.analysis25-table-wrap.view-normal .board-table{
    min-width:0 !important;
}

.analysis25-table-wrap.view-compact .board-table{
    min-width:0 !important;
}

/* 4. 셀 내용이 테이블을 밀지 않도록 */
.board-table th,
.board-table td{
    overflow:hidden;
    text-overflow:ellipsis;
    word-break:break-word;
    white-space:normal;
}

/* 5. 내부 요소도 넘치지 않게 */
.board-table td input,
.board-table td select,
.board-table td button,
.board-table td .board-btn{
    max-width:100% !important;
    box-sizing:border-box;
}

/* 6. 너무 넓어지는 경우 방지 */
.board-table-wrap,
.analysis25-table-wrap{
    overflow-x:hidden !important;
}

/* 7. 기능버튼 영역 안정화 */
.func-wrap{
    min-width:0;
}

.func-buttons{
    flex-wrap:wrap;
    min-width:0;
}

.func-buttons .board-btn{
    max-width:100%;
}

/* =========================================================
   Center List / Customer List responsive support
   admin-board.css 추가 보정
   ========================================================= */

/* 기본 요약 텍스트 */
.board-inline-note{
    display:inline-block;
    color:#6b7280;
    font-size:12px;
    line-height:1.35;
}

.board-value{
    display:inline-flex;
    align-items:center;
    gap:4px;
    min-height:32px;
    color:#111827;
    font-size:13px;
    line-height:1.4;
}

/* 목록 셀 보조 */
.board-cell-mini{
    font-size:12px;
    line-height:1.4;
    white-space:normal;
    word-break:break-word;
}

.board-cell-2line{
    line-height:1.5;
    white-space:normal;
    word-break:break-word;
}

.board-cell-2line .board-inline-note,
.board-cell-mini .board-inline-note{
    margin-top:2px;
}

/* 우측 정렬용 */
.board-table td.right,
.board-table th.right{
    text-align:right;
}

/* 가운데 정렬용 */
.board-table td.center,
.board-table th.center{
    text-align:center;
}

/* 상태 배지 */
.board-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:24px;
    padding:2px 10px;
    border-radius:999px;
    border:1px solid #d1d5db;
    background:#f9fafb;
    color:#374151;
    font-size:12px;
    font-weight:600;
    line-height:1.2;
    white-space:nowrap;
    vertical-align:middle;
}

.board-pill.gray{
    background:#f3f4f6;
    border-color:#d1d5db;
    color:#374151;
}

.board-pill.blue{
    background:#eff6ff;
    border-color:#bfdbfe;
    color:#1d4ed8;
}

.board-pill.red{
    background:#fef2f2;
    border-color:#fecaca;
    color:#dc2626;
}

.board-pill.yellow{
    background:#fffbeb;
    border-color:#fde68a;
    color:#b45309;
}

.board-pill.green{
    background:#ecfdf5;
    border-color:#a7f3d0;
    color:#047857;
}

/* 툴바 안의 버튼/입력 정리 */
.board-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
}

.board-toolbar-left,
.board-toolbar-center,
.board-toolbar-right{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.board-summary{
    font-size:13px;
    color:#374151;
    line-height:1.4;
}

/* 액션 버튼 묶음 */
.board-actions-wrap{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    align-items:center;
}

.board-actions-wrap .board-btn{
    margin:0;
}

/* 버튼 크기 보조 */
.board-btn.xs{
    min-height:28px;
    padding:4px 8px;
    font-size:12px;
    line-height:1.2;
}

/* a 태그를 버튼처럼 */
a.board-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
}

/* 테이블 래퍼 */
.board-table-wrap{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

.board-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
}

.board-table th,
.board-table td{
    padding:10px 8px;
    vertical-align:middle;
    border-bottom:1px solid #e5e7eb;
    background:#fff;
}

.board-table thead th{
    position:sticky;
    top:0;
    z-index:1;
    background:#f8fafc;
    color:#111827;
    font-size:13px;
    font-weight:700;
    line-height:1.35;
}

.board-table tbody tr:hover td{
    background:#fcfcfd;
}

/* 입력요소 */
.board-table .board-input,
.board-mobile-list .board-input{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
}

.board-input.date{
    min-width:110px;
}

/* 모바일 카드 */
.board-mobile-list{
    display:none;
}

.board-mobile-item{
    border:1px solid #e5e7eb;
    border-radius:16px;
    background:#fff;
    margin-top:12px;
    overflow:hidden;
    box-shadow:0 1px 3px rgba(0,0,0,.04);
}

.board-mobile-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:10px;
    padding:14px 14px 10px;
    border-bottom:1px solid #f1f5f9;
    background:#fcfcfd;
}

.board-mobile-title{
    font-size:15px;
    font-weight:700;
    line-height:1.4;
    color:#111827;
}

.board-mobile-title a{
    color:#111827;
    text-decoration:none;
}

.board-mobile-sub{
    margin-top:4px;
    color:#6b7280;
    font-size:12px;
    line-height:1.4;
}

.board-mobile-body{
    padding:12px 14px;
}

.board-mobile-row{
    display:flex;
    gap:10px;
    padding:7px 0;
    border-bottom:1px dashed #e5e7eb;
}

.board-mobile-row:last-child{
    border-bottom:none;
}

.board-mobile-label{
    flex:0 0 84px;
    color:#6b7280;
    font-size:12px;
    font-weight:600;
    line-height:1.45;
}

.board-mobile-value{
    flex:1 1 auto;
    min-width:0;
    color:#111827;
    font-size:13px;
    line-height:1.5;
    word-break:break-word;
}

.board-mobile-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding:12px 14px 14px;
    border-top:1px solid #f1f5f9;
    background:#fff;
}

.board-mobile-actions .board-btn{
    flex:1 1 auto;
    min-width:88px;
    justify-content:center;
}

.board-mobile-actions .board-btn.primary{
    font-weight:700;
}

/* 검색영역 보정 */
.board-filter{
    margin-bottom:12px;
}

.board-filter-grid-1{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
}

.board-filter-box{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.board-label{
    display:inline-flex;
    align-items:center;
    min-height:32px;
    font-size:13px;
    font-weight:600;
    color:#374151;
    white-space:nowrap;
}

/* 센터관리처럼 버튼 많은 경우 */
.board-toolbar-right .board-btn,
.board-toolbar-left .board-btn{
    white-space:nowrap;
}

/* 반응형 처리 */
@media (max-width: 1024px){
    .board-table{
        min-width:1100px;
    }
}

@media (max-width: 768px){
    .board-table-wrap{
        display:none;
    }

    .board-mobile-list{
        display:block;
    }

    .board-toolbar{
        align-items:flex-start;
    }

    .board-toolbar-left,
    .board-toolbar-center,
    .board-toolbar-right{
        width:100%;
        justify-content:flex-start;
    }

    .board-filter-box{
        align-items:flex-start;
    }

    .board-label{
        min-width:54px;
    }

    .board-mobile-label{
        flex-basis:74px;
    }

    .board-mobile-actions .board-btn{
        flex:1 1 calc(50% - 8px);
    }
}

@media (max-width: 480px){
    .board-mobile-head,
    .board-mobile-body,
    .board-mobile-actions{
        padding-left:12px;
        padding-right:12px;
    }

    .board-mobile-row{
        flex-direction:column;
        gap:4px;
    }

    .board-mobile-label{
        flex:0 0 auto;
    }

    .board-mobile-actions .board-btn{
        flex:1 1 100%;
    }

    .board-pill{
        font-size:11px;
        padding:2px 8px;
    }
}