/* SM Platform — 교육생 프론트(카탈로그·신청). 기관형 네이비 톤 */
.smp-fe { --smp-navy:#1E3A5F; --smp-accent:#C0752B; --smp-line:#E2E6EC; --smp-muted:#6B7280;
	max-width:1080px; margin:0 auto; font-size:15px; color:#1A2230; }
.smp-fe * { box-sizing:border-box; }

.smp-fe-notice { padding:12px 16px; border-radius:8px; margin:0 0 16px; font-weight:600; }
.smp-fe-ok  { background:#e6f1ea; color:#2E7D53; }
.smp-fe-err { background:#f7e5e3; color:#C0453C; }

.smp-fe-filters { display:flex; gap:10px; margin:0 0 18px; }
.smp-fe-filters select { padding:8px 12px; border:1px solid var(--smp-line); border-radius:8px; background:#fff; }

/* 카드 그리드 */
.smp-fe-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:900px){ .smp-fe-grid{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .smp-fe-grid{ grid-template-columns:1fr;} }

.smp-fe-card { border:1px solid var(--smp-line); border-radius:12px; overflow:hidden; background:#fff;
	box-shadow:0 1px 2px rgba(24,32,46,.05),0 6px 18px rgba(24,32,46,.06); display:flex; flex-direction:column; }
.smp-fe-thumb { height:140px; background-size:cover; background-position:center; background-color:#eef2f6; }
.smp-fe-body { padding:16px; display:flex; flex-direction:column; gap:8px; flex:1; }
.smp-fe-tags { display:flex; flex-wrap:wrap; gap:6px; }
.smp-fe-tag { font-size:11px; font-weight:700; padding:3px 9px; border-radius:20px; background:#e6eef7; color:var(--smp-navy); }
.smp-fe-tag.alt { background:#f3ece2; color:var(--smp-accent); }
.smp-fe-cardtitle { margin:2px 0 0; font-size:17px; line-height:1.35; color:var(--smp-navy); }
.smp-fe-inst { margin:0; font-size:13px; color:var(--smp-muted); }
.smp-fe-summary { margin:2px 0; font-size:13.5px; color:#414B5C; }
.smp-fe-meta { list-style:none; padding:0; margin:6px 0; font-size:13px; color:#414B5C; display:flex; flex-direction:column; gap:3px; }
.smp-fe-meta li::before { content:"·"; color:var(--smp-accent); font-weight:800; margin-right:6px; }

.smp-fe-btn { display:inline-block; margin-top:auto; text-align:center; padding:10px 16px; border-radius:8px;
	background:var(--smp-navy); color:#fff !important; font-weight:700; text-decoration:none; border:none; cursor:pointer; font-size:14px; }
.smp-fe-btn:hover { background:#2C4E7A; }
.smp-fe-btn.disabled { background:#c3c9d2; cursor:default; pointer-events:none; }
.smp-fe-btn.small { padding:6px 12px; font-size:13px; margin-left:8px; }

.smp-fe-empty { padding:40px 0; text-align:center; color:var(--smp-muted); }

/* 신청서 */
.smp-fe-apply { max-width:640px; }
.smp-fe-back { display:inline-block; margin-bottom:12px; color:var(--smp-navy); text-decoration:none; font-weight:600; }
.smp-fe-title { color:var(--smp-navy); margin:0 0 4px; }
.smp-fe-form { display:flex; flex-direction:column; gap:14px; margin-top:16px; }
.smp-fe-form label { display:flex; flex-direction:column; gap:6px; font-weight:600; font-size:14px; }
.smp-fe-form input, .smp-fe-form textarea { padding:10px 12px; border:1px solid var(--smp-line); border-radius:8px; font-size:14px; font-family:inherit; }
.smp-req { color:#C0453C; }

/* 내 신청현황 표 */
.smp-fe-table { width:100%; border-collapse:collapse; margin-top:12px; }
.smp-fe-table th, .smp-fe-table td { padding:12px 10px; border-bottom:1px solid var(--smp-line); text-align:left; font-size:14px; }
.smp-fe-table thead th { background:var(--smp-navy); color:#fff; }
.smp-fe-reject { color:#C0453C; font-size:12.5px; }
.smp-fe-badge { font-size:12px; font-weight:700; padding:3px 10px; border-radius:12px; }
.b-applied { background:#fff3d9; color:#B07A12; }
.b-approved { background:#e2f1e8; color:#2E7D53; }
.b-rejected { background:#fbe4e2; color:#C0453C; }
.b-cancelled { background:#eceff3; color:#666; }
.b-completed { background:#e6eef7; color:#1E3A5F; }
.smp-fe-link { background:none; border:none; color:#C0453C; cursor:pointer; text-decoration:underline; font-size:13px; padding:0; }

@media (max-width:560px){
	.smp-fe-table thead { display:none; }
	.smp-fe-table tr { display:block; border:1px solid var(--smp-line); border-radius:10px; margin-bottom:10px; padding:6px 10px; }
	.smp-fe-table td { display:flex; justify-content:space-between; border:none; padding:8px 0; }
	.smp-fe-table td::before { content:attr(data-th); font-weight:700; color:var(--smp-muted); }
}

/* 공지 목록 */
.smp-fe-notices { list-style:none; padding:0; margin:8px 0; border-top:2px solid var(--smp-navy); }
.smp-fe-notices li { border-bottom:1px solid var(--smp-line); }
.smp-fe-notices li a, .smp-fe-notices li { display:flex; align-items:center; gap:10px; padding:12px 6px; text-decoration:none; color:#1A2230; }
.smp-fe-notices li a:hover { background:#f6f8fb; }
.smp-fe-pin { font-size:11px; font-weight:700; color:#fff; background:var(--smp-accent); padding:2px 8px; border-radius:10px; }
.smp-fe-ntitle { flex:1; font-weight:600; }
.smp-fe-ndate { color:var(--smp-muted); font-size:13px; }
.smp-fe-pager { display:flex; gap:6px; justify-content:center; margin-top:16px; }
.smp-fe-pager a { padding:6px 12px; border:1px solid var(--smp-line); border-radius:6px; text-decoration:none; color:var(--smp-navy); }
.smp-fe-pager a.on { background:var(--smp-navy); color:#fff; }

/* 공지 상세 */
.smp-fe-article { max-width:760px; }
.smp-fe-artmeta { color:var(--smp-muted); font-size:13px; border-bottom:1px solid var(--smp-line); padding-bottom:12px; }
.smp-fe-content { line-height:1.8; margin:16px 0; }
.smp-fe-attach a { color:var(--smp-navy); font-weight:600; }

/* 설문 */
.smp-fe-survey { max-width:680px; }
.smp-fe-sdesc { color:#414B5C; }
.smp-q { border:1px solid var(--smp-line); border-radius:10px; padding:12px 16px; margin:0; }
.smp-q legend { font-weight:700; padding:0 6px; color:var(--smp-navy); }
.smp-scale { display:flex; gap:6px; flex-wrap:wrap; }
.smp-scale label { flex:1; min-width:64px; text-align:center; border:1px solid var(--smp-line); border-radius:8px; padding:8px 4px; cursor:pointer; font-weight:600; }
.smp-scale label:hover { border-color:var(--smp-navy); }
.smp-scale input { display:block; margin:0 auto 4px; }
.smp-scale small { color:var(--smp-muted); font-weight:400; font-size:11px; }
.smp-fe-full { display:flex; flex-direction:column; gap:6px; font-weight:600; font-size:14px; }
.smp-fe-full textarea, .smp-fe-full input { padding:10px 12px; border:1px solid var(--smp-line); border-radius:8px; font-family:inherit; font-size:14px; }

/* 홈 */
.smp-fe-home { max-width:1080px; }
.smp-hero { text-align:center; padding:48px 20px; background:linear-gradient(135deg,#1E3A5F,#2C4E7A); color:#fff; border-radius:16px; margin-bottom:28px; }
.smp-hero-eyebrow { letter-spacing:.08em; font-size:13px; opacity:.85; margin:0 0 8px; }
.smp-hero-title { font-size:clamp(24px,4vw,38px); margin:0 0 10px; line-height:1.25; }
.smp-hero-title strong { color:#E0975A; }
.smp-hero-sub { opacity:.92; max-width:640px; margin:0 auto; }
.smp-home-sec { margin:0 0 36px; }
.smp-home-h { font-size:20px; color:var(--smp-navy); border-left:4px solid var(--smp-accent); padding-left:12px; margin:0 0 16px; }
.smp-home-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; }
.smp-hstat { background:#fff; border:1px solid var(--smp-line); border-radius:12px; padding:20px; text-align:center;
	box-shadow:0 1px 2px rgba(24,32,46,.05),0 6px 18px rgba(24,32,46,.06); }
.smp-hstat b { display:block; font-size:30px; font-weight:800; color:var(--smp-navy); }
.smp-hstat b small { font-size:14px; color:var(--smp-muted); margin-left:2px; }
.smp-hstat span { font-size:13px; color:#414B5C; }

/* 프론트 대시보드 */
.smp-fe-dash-head { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.smp-fe-yearsel select { padding:8px 12px; border:1px solid var(--smp-line); border-radius:8px; background:#fff; font-size:14px; }
.smp-dash-stats { margin:10px 0 22px; }
.smp-fe-panel { background:#fff; border:1px solid var(--smp-line); border-radius:12px; padding:18px 20px; margin:0 0 20px;
	box-shadow:0 1px 2px rgba(24,32,46,.05),0 6px 18px rgba(24,32,46,.06); }
.smp-fe-panelh { font-size:16px; color:var(--smp-navy); margin:0 0 14px; border-left:4px solid var(--smp-accent); padding-left:10px; }
.smp-chart-box { position:relative; height:320px; }
.smp-table-scroll { overflow-x:auto; }
.smp-fe-matrix { border-collapse:collapse; width:100%; font-size:12px; }
.smp-fe-matrix th, .smp-fe-matrix td { border:1px solid var(--smp-line); padding:7px 8px; text-align:center; white-space:nowrap; }
.smp-fe-matrix thead th { background:var(--smp-navy); color:#fff; font-weight:600; }
.smp-fe-matrix .stick { position:sticky; left:0; background:#f6f7f9; text-align:left; font-weight:700; }
.smp-fe-matrix thead .stick { background:var(--smp-navy); color:#fff; }
.smp-fe-matrix td.tot, .smp-fe-matrix th.tot { font-weight:700; background:#f0f3f7; }
/* 달성률 색 */
.dr-ok { color:#2E7D53; } .dr-warn { color:#B07A12; } .dr-bad { color:#C0453C; } .dr-na { color:#9aa3af; }
td.dr-ok { background:rgba(46,125,83,.08); } td.dr-warn { background:rgba(176,122,18,.08); } td.dr-bad { background:rgba(192,69,60,.08); }
.smp-hstat b.dr-ok, .smp-hstat b.dr-warn, .smp-hstat b.dr-bad { }
.smp-fe-legend { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.smp-fe-legend .lg { font-size:11px; font-weight:700; padding:2px 10px; border-radius:12px; background:#f0f3f7; }
