/* ═══════════════════════════════════════
   ROOT & RESET
═══════════════════════════════════════ */
:root {
  --navy:      #0d1b2a;
  --navy-mid:  #1a2d42;
  --indigo:    #1e3a5f;
  --accent:    #c9a84c;
  --accent-lt: #e2c97e;
  --accent-dk: #a07830;
  --white:     #ffffff;
  --off-white: #f8f6f2;
  --gray-100:  #f4f4f6;
  --gray-300:  #d1d5db;
  --gray-500:  #6b7280;
  --gray-700:  #374151;
  --text-main: #1a1a2e;
  --text-sub:  #4a5568;

  --ff-serif: 'Playfair Display', Georgia, serif;
  --ff-sans:  'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif;

  --max-w: 1120px;
  --nav-h: 72px;
  --radius: 16px;
  --shadow: 0 4px 24px rgba(0,0,0,.10);
  --shadow-lg: 0 12px 48px rgba(0,0,0,.16);
  --transition: .3s cubic-bezier(.4,0,.2,1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--nav-h);
}

body {
  font-family: var(--ff-sans);
  color: var(--text-main);
  background: var(--white);
  line-height: 1.7;
  overflow-x: hidden;
}

img { display: block; max-width: 100%; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }

/* ═══════════════════════════════════════
   UTILITIES
═══════════════════════════════════════ */
.container {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 24px;
}

.section-eyebrow {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 12px;
}

.section-title {
  font-family: var(--ff-serif);
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 700;
  line-height: 1.25;
  color: var(--navy);
}

.section-sub {
  margin-top: 16px;
  font-size: 1.05rem;
  color: var(--text-sub);
  line-height: 1.8;
}

.section-header {
  text-align: center;
  margin-bottom: 64px;
}

/* ═══════════════════════════════════════
   BUTTONS
═══════════════════════════════════════ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  border-radius: 50px;
  font-size: .95rem;
  font-weight: 600;
  font-family: var(--ff-sans);
  transition: var(--transition);
}

.btn-primary {
  background: linear-gradient(135deg, var(--accent), var(--accent-dk));
  color: var(--navy);
  box-shadow: 0 4px 20px rgba(201,168,76,.35);
}
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(201,168,76,.5);
}

.btn-ghost {
  border: 2px solid rgba(255,255,255,.6);
  color: var(--white);
  background: transparent;
}
.btn-ghost:hover {
  background: rgba(255,255,255,.12);
  border-color: var(--white);
}

.btn-full { width: 100%; justify-content: center; }

/* ═══════════════════════════════════════
   NAVBAR
═══════════════════════════════════════ */
#navbar {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  height: var(--nav-h);
  transition: background var(--transition), box-shadow var(--transition);
}

#navbar.scrolled {
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(12px);
  box-shadow: 0 2px 20px rgba(0,0,0,.08);
}

#navbar.scrolled .nav-links a { color: var(--navy); }
#navbar.scrolled .nav-logo { color: var(--navy); }

.nav-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 24px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nav-logo {
  font-family: var(--ff-serif);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--white);
  letter-spacing: .02em;
  transition: color var(--transition);
}

.nav-logo .dot { color: var(--accent); }

.nav-links {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nav-links a {
  color: rgba(255,255,255,.85);
  font-size: .9rem;
  font-weight: 500;
  padding: 8px 14px;
  border-radius: 8px;
  transition: var(--transition);
}

.nav-links a:hover { color: var(--white); background: rgba(255,255,255,.1); }

.nav-cta {
  background: linear-gradient(135deg, var(--accent), var(--accent-dk)) !important;
  color: var(--navy) !important;
  padding: 10px 22px !important;
  border-radius: 50px !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 16px rgba(201,168,76,.4);
}
.nav-cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(201,168,76,.5) !important;
  background: rgba(255,255,255,.1) !important;
  background: linear-gradient(135deg, var(--accent-lt), var(--accent)) !important;
}

/* hamburger */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 8px;
}
.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--white);
  border-radius: 2px;
  transition: var(--transition);
}
#navbar.scrolled .hamburger span { background: var(--navy); }

.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ═══════════════════════════════════════
   HERO
═══════════════════════════════════════ */
#hero {
  position: relative;
  min-height: 100vh;
  background: linear-gradient(145deg, var(--navy) 0%, var(--indigo) 60%, #2d4a6e 100%);
  display: flex;
  align-items: center;
  overflow: hidden;
}

.hero-bg { position: absolute; inset: 0; pointer-events: none; }

.hero-circle {
  position: absolute;
  border-radius: 50%;
  opacity: .06;
  background: var(--accent);
}
.c1 { width: 600px; height: 600px; top: -200px; right: -100px; }
.c2 { width: 400px; height: 400px; bottom: -150px; left: -100px; background: var(--white); }
.c3 { width: 200px; height: 200px; top: 30%; right: 30%; opacity: .04; }

.hero-content {
  position: relative;
  z-index: 2;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: calc(var(--nav-h) + 60px) 24px 80px;
  width: 100%;
}

.hero-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 24px;
}
.hero-label::before {
  content: '';
  display: block;
  width: 32px;
  height: 1px;
  background: var(--accent);
}

.hero-title {
  font-family: var(--ff-serif);
  font-size: clamp(2.4rem, 6vw, 4.2rem);
  font-weight: 700;
  color: var(--white);
  line-height: 1.15;
  margin-bottom: 24px;
}

.hero-title .highlight {
  background: linear-gradient(135deg, var(--accent), var(--accent-lt));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.hero-sub {
  font-size: 1.1rem;
  color: rgba(255,255,255,.75);
  line-height: 1.8;
  max-width: 520px;
  margin-bottom: 40px;
}

.hero-btns {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 64px;
}

.hero-stats {
  display: flex;
  align-items: center;
  gap: 0;
  flex-wrap: wrap;
  gap: 8px;
}

.stat { text-align: center; padding: 0 32px; }
.stat:first-child { padding-left: 0; }

.stat-num {
  font-family: var(--ff-serif);
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--white);
}
.stat-unit {
  font-family: var(--ff-serif);
  font-size: 1.4rem;
  color: var(--accent);
  font-weight: 700;
}
.stat-label {
  font-size: .8rem;
  color: rgba(255,255,255,.55);
  margin-top: 4px;
  letter-spacing: .04em;
}

.stat-divider {
  width: 1px;
  height: 48px;
  background: rgba(255,255,255,.15);
}

/* scroll hint */
.hero-scroll-hint {
  position: absolute;
  bottom: 32px;
  right: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: rgba(255,255,255,.4);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.scroll-line {
  width: 1px;
  height: 48px;
  background: linear-gradient(to bottom, rgba(255,255,255,.4), transparent);
  animation: scrollDown 1.6s ease-in-out infinite;
}

@keyframes scrollDown {
  0%   { transform: scaleY(0); transform-origin: top; opacity: 1; }
  50%  { transform: scaleY(1); transform-origin: top; opacity: 1; }
  100% { transform: scaleY(1); transform-origin: bottom; opacity: 0; }
}

/* ═══════════════════════════════════════
   ABOUT
═══════════════════════════════════════ */
#about {
  padding: 120px 0;
  background: var(--off-white);
}

.about-grid {
  display: grid;
  grid-template-columns: 400px 1fr;
  gap: 80px;
  align-items: center;
}

.about-img-wrap {
  position: relative;
}

.about-img-placeholder {
  width: 100%;
  aspect-ratio: 4/5;
  background: linear-gradient(145deg, var(--indigo), var(--navy));
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.15);
  font-size: 6rem;
  overflow: hidden;
}

.about-img-placeholder::after {
  content: '프로필 사진을 여기에';
  position: absolute;
  bottom: 24px;
  font-size: .8rem;
  color: rgba(255,255,255,.3);
  font-family: var(--ff-sans);
  letter-spacing: .05em;
}

/* 실제 프로필 사진 */
.about-img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center top;
  border-radius: var(--radius);
  display: block;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
}

.about-badge {
  position: absolute;
  bottom: -20px;
  right: -20px;
  background: var(--white);
  border-radius: 12px;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: var(--shadow-lg);
  font-size: .85rem;
  font-weight: 600;
  color: var(--navy);
}
.about-badge i { color: var(--accent); font-size: 1.1rem; }

.about-desc {
  color: var(--text-sub);
  font-size: 1rem;
  line-height: 1.9;
  margin: 20px 0 28px;
}

.about-tags {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 24px;
  margin-bottom: 28px;
}

.about-tags li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .9rem;
  color: var(--text-sub);
  font-weight: 500;
}
.about-tags li i { color: var(--accent); font-size: .9rem; }

.about-certs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.cert-tag {
  background: var(--navy);
  color: var(--accent);
  font-size: .78rem;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 50px;
  letter-spacing: .04em;
}

/* ═══════════════════════════════════════
   SERVICES
═══════════════════════════════════════ */
#services {
  padding: 120px 0;
  background: var(--white);
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.service-card {
  position: relative;
  background: var(--off-white);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: var(--radius);
  padding: 40px 32px;
  transition: var(--transition);
  overflow: hidden;
}

.service-card::before {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), var(--accent-lt));
  transform: scaleX(0);
  transform-origin: left;
  transition: var(--transition);
}

.service-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
  background: var(--white);
}
.service-card:hover::before { transform: scaleX(1); }

.service-card.featured {
  background: linear-gradient(145deg, var(--navy), var(--indigo));
  border-color: transparent;
}
.service-card.featured h3 { color: var(--white); }
.service-card.featured p  { color: rgba(255,255,255,.7); }
.service-card.featured .card-link { color: var(--accent); }
.service-card.featured .service-icon-wrap {
  background: rgba(201,168,76,.15);
  color: var(--accent);
}
.service-card.featured::before {
  background: linear-gradient(90deg, var(--accent-lt), var(--accent));
}

.badge-popular {
  position: absolute;
  top: 20px; right: 20px;
  background: var(--accent);
  color: var(--navy);
  font-size: .7rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 50px;
  letter-spacing: .06em;
}

.service-icon-wrap {
  width: 56px;
  height: 56px;
  background: linear-gradient(135deg, rgba(201,168,76,.15), rgba(201,168,76,.05));
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  color: var(--accent);
  margin-bottom: 20px;
}

.service-card h3 {
  font-family: var(--ff-serif);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 12px;
}

.service-card p {
  font-size: .9rem;
  color: var(--text-sub);
  line-height: 1.75;
  margin-bottom: 24px;
}

.card-link {
  font-size: .85rem;
  font-weight: 600;
  color: var(--accent-dk);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
}
.card-link:hover { gap: 10px; color: var(--accent); }
.card-link i { font-size: .75rem; }

/* ═══════════════════════════════════════
   PROCESS
═══════════════════════════════════════ */
#process {
  padding: 120px 0;
  background: var(--navy);
}

#process .section-eyebrow { color: var(--accent); }
#process .section-title    { color: var(--white); }
#process .section-sub      { color: rgba(255,255,255,.55); }

.process-timeline {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
}

.process-timeline::before {
  content: '';
  position: absolute;
  top: 36px;
  left: calc(12.5%);
  right: calc(12.5%);
  height: 1px;
  background: linear-gradient(90deg, var(--accent) 0%, rgba(201,168,76,.1) 100%);
  z-index: 0;
}

.process-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 24px;
  position: relative;
  z-index: 1;
}

.process-step::before {
  content: attr(data-step);
  position: absolute;
  top: -28px;
  font-family: var(--ff-serif);
  font-size: .75rem;
  color: rgba(201,168,76,.4);
  letter-spacing: .1em;
  font-weight: 700;
}

.step-icon {
  width: 72px;
  height: 72px;
  background: linear-gradient(135deg, var(--accent), var(--accent-dk));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: var(--navy);
  margin-bottom: 28px;
  box-shadow: 0 4px 24px rgba(201,168,76,.35);
  position: relative;
}

.step-body h3 {
  font-family: var(--ff-serif);
  font-size: 1.1rem;
  color: var(--white);
  margin-bottom: 10px;
}

.step-body p {
  font-size: .87rem;
  color: rgba(255,255,255,.55);
  line-height: 1.75;
}

/* ═══════════════════════════════════════
   CASES
═══════════════════════════════════════ */
#cases {
  padding: 120px 0;
  background: var(--off-white);
}

.cases-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.case-card {
  background: var(--white);
  border-radius: var(--radius);
  padding: 36px;
  box-shadow: var(--shadow);
  transition: var(--transition);
  border: 1px solid rgba(0,0,0,.04);
}
.case-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lg);
}

.case-tag {
  display: inline-block;
  background: linear-gradient(135deg, var(--accent), var(--accent-dk));
  color: var(--navy);
  font-size: .72rem;
  font-weight: 700;
  padding: 5px 14px;
  border-radius: 50px;
  margin-bottom: 16px;
  letter-spacing: .06em;
}

.case-title {
  font-family: var(--ff-serif);
  font-size: 1.15rem;
  color: var(--navy);
  margin-bottom: 16px;
  line-height: 1.4;
}

.case-situation, .case-result {
  font-size: .88rem;
  color: var(--text-sub);
  line-height: 1.75;
  margin-bottom: 12px;
}

.case-result strong, .case-situation strong {
  color: var(--navy);
  display: block;
  margin-bottom: 4px;
}

.case-industry {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--gray-100);
  font-size: .8rem;
  color: var(--gray-500);
  display: flex;
  align-items: center;
  gap: 6px;
}
.case-industry i { color: var(--accent); }

/* ═══════════════════════════════════════
   TESTIMONIALS
═══════════════════════════════════════ */
#testimonials {
  padding: 120px 0;
  background: var(--white);
  overflow: hidden;
}

.testimonials-slider {
  overflow: hidden;
  margin: 0 -24px;
  padding: 0 24px;
}

.testimonial-track {
  display: flex;
  gap: 24px;
  transition: transform .5s cubic-bezier(.4,0,.2,1);
  will-change: transform;
}

.testimonial-card {
  flex: 0 0 calc(33.333% - 16px);
  background: var(--off-white);
  border-radius: var(--radius);
  padding: 40px 36px;
  border: 1px solid rgba(0,0,0,.05);
}

.stars {
  color: var(--accent);
  font-size: .9rem;
  letter-spacing: 2px;
  margin-bottom: 20px;
}

blockquote {
  font-size: .95rem;
  color: var(--text-sub);
  line-height: 1.85;
  margin-bottom: 28px;
  font-style: italic;
}

.reviewer {
  display: flex;
  align-items: center;
  gap: 14px;
}

.reviewer-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--navy), var(--indigo));
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.5);
  font-size: .9rem;
  flex-shrink: 0;
}

.reviewer strong {
  display: block;
  font-size: .9rem;
  color: var(--navy);
  font-weight: 600;
}
.reviewer span {
  font-size: .78rem;
  color: var(--gray-500);
}

.slider-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: 40px;
}

.slider-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1.5px solid var(--gray-300);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gray-700);
  font-size: .85rem;
  transition: var(--transition);
}
.slider-btn:hover {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--white);
}

.slider-dots {
  display: flex;
  gap: 8px;
}

.dot-item {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gray-300);
  transition: var(--transition);
  cursor: pointer;
  border: none;
}
.dot-item.active {
  background: var(--accent);
  width: 24px;
  border-radius: 4px;
}

/* ═══════════════════════════════════════
   CONTACT
═══════════════════════════════════════ */
#contact {
  padding: 120px 0;
  background: var(--off-white);
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 80px;
  align-items: start;
}

.contact-desc {
  font-size: 1.05rem;
  color: var(--text-sub);
  line-height: 1.85;
  margin: 20px 0 36px;
}
.contact-desc strong { color: var(--accent-dk); }

.contact-details {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.contact-details li {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: .95rem;
  color: var(--text-sub);
}
.contact-details li i {
  width: 40px;
  height: 40px;
  background: var(--navy);
  color: var(--accent);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .95rem;
  flex-shrink: 0;
}

/* form */
.contact-form {
  background: var(--white);
  border-radius: var(--radius);
  padding: 48px;
  box-shadow: var(--shadow-lg);
}

.form-group {
  margin-bottom: 22px;
}

.form-group label {
  display: block;
  font-size: .85rem;
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 8px;
  letter-spacing: .02em;
}

.required { color: var(--accent); }

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 13px 16px;
  border: 1.5px solid var(--gray-300);
  border-radius: 10px;
  font-family: var(--ff-sans);
  font-size: .92rem;
  color: var(--text-main);
  background: var(--white);
  transition: border-color var(--transition), box-shadow var(--transition);
  appearance: none;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(201,168,76,.15);
}

.form-group input::placeholder,
.form-group textarea::placeholder {
  color: var(--gray-300);
}

.form-group textarea { resize: vertical; min-height: 100px; }

.form-group select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
}

.form-group input.error,
.form-group select.error,
.form-group textarea.error {
  border-color: #e53e3e;
}

.form-notice {
  margin-top: 14px;
  font-size: .78rem;
  color: var(--gray-500);
  text-align: center;
}

/* ═══════════════════════════════════════
   RESOURCES
═══════════════════════════════════════ */
#resources {
  padding: 120px 0;
  background: var(--navy);
}

#resources .section-eyebrow { color: var(--accent); }
#resources .section-title   { color: var(--white); }
#resources .section-sub     { color: rgba(255,255,255,.55); }

/* 안내 박스 */
.res-info-box {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: rgba(201,168,76,.10);
  border: 1px solid rgba(201,168,76,.25);
  border-radius: 10px;
  padding: 16px 20px;
  margin-bottom: 32px;
  font-size: .88rem;
  color: rgba(255,255,255,.7);
  line-height: 1.7;
}
.res-info-box i {
  color: var(--accent);
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 2px;
}
.res-info-box strong { color: var(--accent-lt); }

/* ── 드롭다운 탭 셀렉터 ── */
.res-tab-dropdown-wrap {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

.res-tab-dropdown-inner {
  position: relative;
  display: inline-flex;
  align-items: center;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 10px;
  padding: 0 14px 0 14px;
  transition: border-color .2s, box-shadow .2s;
  min-width: 260px;
}
.res-tab-dropdown-inner:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(201,168,76,.18);
}

.res-tab-dropdown-icon {
  font-size: 1rem;
  color: var(--accent);
  margin-right: 10px;
  flex-shrink: 0;
  pointer-events: none;
}

.res-tab-select {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: none;
  outline: none;
  color: var(--white);
  font-size: .92rem;
  font-weight: 600;
  font-family: var(--ff-sans);
  padding: 13px 36px 13px 0;
  cursor: pointer;
  width: 100%;
  line-height: 1.4;
}
.res-tab-select option {
  background: #1a2640;
  color: var(--white);
  font-weight: 500;
}

.res-tab-dropdown-arrow {
  position: absolute;
  right: 14px;
  color: rgba(255,255,255,.5);
  font-size: .8rem;
  pointer-events: none;
  transition: transform .2s;
}
.res-tab-dropdown-inner:focus-within .res-tab-dropdown-arrow {
  transform: rotate(180deg);
  color: var(--accent);
}

.res-tab-current-label {
  font-size: .82rem;
  color: rgba(255,255,255,.45);
  letter-spacing: .03em;
}
.res-tab-current-label::before {
  content: '현재: ';
  color: var(--accent);
  font-weight: 700;
}

/* AI폼 안내 박스 (탭 내부 배치 전용) */
.res-prompt-info {
  margin-bottom: 20px;
}

/* 탭 버튼 — 유지(비활성화) */
.res-tabs {
  display: none; /* 드롭다운으로 완전 대체 */
}

.res-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 20px;
  border-radius: 8px;
  font-size: .87rem;
  font-weight: 600;
  font-family: var(--ff-sans);
  background: rgba(255,255,255,.07);
  color: rgba(255,255,255,.6);
  border: 1px solid rgba(255,255,255,.10);
  cursor: pointer;
  transition: var(--transition);
}
.res-tab-btn i { font-size: .85rem; }
.res-tab-btn:hover {
  background: rgba(255,255,255,.13);
  color: var(--white);
}
.res-tab-btn.active {
  background: linear-gradient(135deg, var(--accent), var(--accent-dk));
  color: var(--navy);
  border-color: transparent;
  box-shadow: 0 4px 16px rgba(201,168,76,.35);
}

.res-count {
  background: rgba(0,0,0,.18);
  padding: 2px 7px;
  border-radius: 20px;
  font-size: .75rem;
  font-weight: 700;
}
.res-tab-btn.active .res-count {
  background: rgba(0,0,0,.2);
  color: var(--navy);
}

/* 탭 패널 */
.res-tab-panel {
  display: none;
  animation: fadeIn .3s ease;
}
.res-tab-panel.active { display: block; }

/* 프롬프트 그리드 */
.res-prompt-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.res-prompt-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--radius);
  padding: 24px;
  transition: var(--transition);
}
.res-prompt-card:hover {
  background: rgba(255,255,255,.08);
  border-color: rgba(201,168,76,.3);
}

.res-prompt-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.res-prompt-num {
  font-family: var(--ff-serif);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--accent);
  flex-shrink: 0;
  width: 28px;
}

.res-prompt-header h3 {
  font-size: .95rem;
  font-weight: 600;
  color: var(--white);
  margin: 0;
  flex: 1;
  line-height: 1.4;
}

.res-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  border-radius: 6px;
  background: rgba(201,168,76,.15);
  color: var(--accent);
  font-size: .78rem;
  font-weight: 600;
  font-family: var(--ff-sans);
  border: 1px solid rgba(201,168,76,.25);
  cursor: pointer;
  transition: var(--transition);
  flex-shrink: 0;
}
.res-copy-btn:hover {
  background: var(--accent);
  color: var(--navy);
  border-color: var(--accent);
}
.res-copy-btn.copied {
  background: #1a6e3a;
  color: #fff;
  border-color: #1a6e3a;
}

.res-prompt-box {
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
  padding: 16px;
  font-family: 'Consolas', 'Courier New', monospace;
  font-size: .82rem;
  color: rgba(255,255,255,.75);
  line-height: 1.75;
  white-space: pre-wrap;
  word-break: break-all;
  margin: 0;
}

/* 테이블 공통 */
.res-table-wrap {
  width: 100%;
  overflow-x: auto;
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.08);
}

.res-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .87rem;
  table-layout: fixed;
}

.res-table thead tr {
  background: linear-gradient(90deg, var(--indigo), var(--navy-mid));
}
.res-table thead tr.red    { background: linear-gradient(90deg, #6b1c13, #911d12); }
.res-table thead tr.purple { background: linear-gradient(90deg, #4a1a5c, #6b2480); }

.res-table th {
  padding: 13px 14px;
  color: var(--accent-lt);
  font-weight: 600;
  font-size: .82rem;
  letter-spacing: .04em;
  text-align: left;
  white-space: nowrap;
}
.res-table th:first-child { text-align: center; }

.res-table td {
  padding: 12px 14px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  color: rgba(255,255,255,.75);
  vertical-align: middle;
  word-break: break-word;
  background: rgba(255,255,255,.03);
}
.res-table td:first-child { text-align: center; color: rgba(255,255,255,.35); font-size: .8rem; }
.res-table td strong { color: var(--white); }

.res-table tr:hover td { background: rgba(201,168,76,.05); }
.res-table tr:last-child td { border-bottom: none; }

/* 배지 */
.res-badge {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 4px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .03em;
  white-space: nowrap;
}
.res-badge.blue   { background: rgba(26,79,160,.35);  color: #90b4f8; border: 1px solid rgba(90,140,255,.2); }
.res-badge.navy   { background: rgba(13,27,42,.6);    color: rgba(255,255,255,.6); border: 1px solid rgba(255,255,255,.12); }
.res-badge.gold   { background: rgba(201,168,76,.2);  color: var(--accent-lt); border: 1px solid rgba(201,168,76,.25); }
.res-badge.green  { background: rgba(13,110,75,.35);  color: #6dd8a8; border: 1px solid rgba(13,110,75,.3); }
.res-badge.red    { background: rgba(150,30,20,.35);  color: #f4a09a; border: 1px solid rgba(150,30,20,.3); }
.res-badge.purple { background: rgba(100,30,120,.35); color: #d4a8f0; border: 1px solid rgba(100,30,120,.3); }

/* 방문 버튼 */
.res-link-btn {
  display: inline-block;
  padding: 6px 14px;
  border-radius: 6px;
  font-size: .78rem;
  font-weight: 700;
  white-space: nowrap;
  transition: var(--transition);
  background: rgba(201,168,76,.18);
  color: var(--accent-lt);
  border: 1px solid rgba(201,168,76,.25);
}
.res-link-btn:hover {
  background: var(--accent);
  color: var(--navy);
  border-color: var(--accent);
}
.res-link-btn.green {
  background: rgba(13,110,75,.25);
  color: #6dd8a8;
  border-color: rgba(13,110,75,.3);
}
.res-link-btn.green:hover { background: #0d6e4b; color: #fff; border-color: #0d6e4b; }
.res-link-btn.red {
  background: rgba(150,30,20,.25);
  color: #f4a09a;
  border-color: rgba(150,30,20,.3);
}
.res-link-btn.red:hover { background: #a02218; color: #fff; border-color: #a02218; }
.res-link-btn.purple {
  background: rgba(100,30,120,.25);
  color: #d4a8f0;
  border-color: rgba(100,30,120,.3);
}
.res-link-btn.purple:hover { background: #7b2d8b; color: #fff; border-color: #7b2d8b; }

/* ── 통합 검색창 ── */
.res-global-search-wrap {
  margin-bottom: 28px;
}

.res-global-search-label {
  display: block;
  font-size: .82rem;
  font-weight: 600;
  color: var(--accent-lt);
  letter-spacing: .08em;
  margin-bottom: 10px;
}

.res-global-search-box {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0;
}

.res-global-icon {
  position: absolute;
  left: 20px;
  font-size: 1.15rem;
  color: rgba(255,255,255,.45);
  pointer-events: none;
  transition: color var(--transition);
}

.res-global-input {
  width: 100%;
  padding: 18px 56px 18px 54px;
  border-radius: 14px;
  border: 2px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.08);
  color: var(--white);
  font-family: var(--ff-sans);
  font-size: 1.05rem;
  font-weight: 500;
  outline: none;
  transition: border-color var(--transition), background var(--transition), box-shadow var(--transition);
  line-height: 1.5;
}
.res-global-input::placeholder {
  color: rgba(255,255,255,.38);
  font-weight: 400;
}
.res-global-input:focus {
  border-color: var(--accent);
  background: rgba(255,255,255,.12);
  box-shadow: 0 0 0 4px rgba(201,168,76,.15);
}
.res-global-input:focus ~ .res-global-icon,
.res-global-search-box:focus-within .res-global-icon {
  color: var(--accent-lt);
}

/* 지우기 버튼 */
.res-global-clear {
  position: absolute;
  right: 16px;
  display: none;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  color: var(--white);
  font-size: .85rem;
  border: none;
  cursor: pointer;
  transition: background var(--transition);
  flex-shrink: 0;
}
.res-global-clear:hover { background: rgba(255,255,255,.28); }
.res-global-clear.visible { display: flex; }

/* 탭별 결과 카운트 뱃지 */
.res-global-summary {
  display: none;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
  align-items: center;
}
.res-global-summary.visible { display: flex; }

.res-gsummary-label {
  font-size: .8rem;
  color: rgba(255,255,255,.45);
  margin-right: 4px;
}

.res-gsummary-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: .78rem;
  font-weight: 600;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.5);
  cursor: pointer;
  transition: var(--transition);
}
.res-gsummary-chip.has-result {
  background: rgba(201,168,76,.18);
  color: var(--accent-lt);
  border-color: rgba(201,168,76,.35);
}
.res-gsummary-chip.has-result:hover {
  background: rgba(201,168,76,.30);
}
.res-gsummary-chip .chip-count {
  font-size: .72rem;
  background: rgba(201,168,76,.3);
  color: var(--accent-lt);
  border-radius: 10px;
  padding: 1px 7px;
  font-weight: 700;
}
.res-gsummary-chip.no-result {
  opacity: .38;
  pointer-events: none;
}

/* 검색 중 AI프롬프트 카드 하이라이트 */
.res-prompt-card.gs-hidden { display: none; }
.res-prompt-card mark,
.res-table tbody tr mark {
  background: rgba(201,168,76,.35);
  color: var(--accent-lt);
  border-radius: 3px;
  padding: 0 2px;
}

/* ── 미검증 배지 & 행 강조 ── */
.res-unverified-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: .70rem;
  font-weight: 700;
  background: rgba(230, 120, 0, .20);
  color: #f9a843;
  border: 1px solid rgba(230, 120, 0, .35);
  vertical-align: middle;
  margin-left: 5px;
  white-space: nowrap;
}
.res-unverified-badge i { font-size: .65rem; }

/* 미검증 행: 옅은 주황 테두리 */
tr.res-row-unverified {
  border-left: 3px solid rgba(230, 120, 0, .55) !important;
}
tr.res-row-unverified td {
  background: rgba(230, 120, 0, .04);
}

/* 접속불가 배지 */
.res-dead-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: .70rem;
  font-weight: 700;
  background: rgba(200, 30, 30, .20);
  color: #f87474;
  border: 1px solid rgba(200, 30, 30, .35);
  vertical-align: middle;
  margin-left: 5px;
  white-space: nowrap;
}
.res-dead-badge i { font-size: .65rem; }

tr.res-row-dead {
  border-left: 3px solid rgba(200, 30, 30, .55) !important;
}
tr.res-row-dead td {
  background: rgba(200, 30, 30, .04);
  opacity: .65;
}
tr.res-row-dead .res-link-btn {
  pointer-events: none;
  opacity: .4;
}

/* ── 구직준비도 설문 배너 ── */
.res-survey-banner {
  margin-bottom: 20px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, rgba(201,168,76,.18) 0%, rgba(30,58,95,.35) 100%);
  border: 1px solid rgba(201,168,76,.35);
  padding: 18px 24px;
  position: relative;
  overflow: hidden;
}
.res-survey-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 80% 50%, rgba(201,168,76,.08) 0%, transparent 70%);
  pointer-events: none;
}
.res-survey-banner-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.res-survey-text {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1;
  min-width: 0;
}
.res-survey-emoji {
  font-size: 1.6rem;
  flex-shrink: 0;
  line-height: 1;
}
.res-survey-text div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.res-survey-text strong {
  font-size: .96rem;
  font-weight: 700;
  color: var(--white);
  font-family: var(--ff-sans);
}
.res-survey-text span {
  font-size: .84rem;
  color: rgba(255,255,255,.65);
  font-family: var(--ff-sans);
}
.res-survey-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 22px;
  border-radius: 10px;
  font-size: .88rem;
  font-weight: 700;
  font-family: var(--ff-sans);
  background: var(--accent);
  color: var(--navy);
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 4px 16px rgba(201,168,76,.35);
}
.res-survey-btn:hover {
  background: var(--accent-lt);
  color: var(--navy);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201,168,76,.45);
}
.res-survey-btn i {
  font-size: .85rem;
}
@media (max-width: 600px) {
  .res-survey-banner-inner { flex-direction: column; align-items: flex-start; }
  .res-survey-btn { width: 100%; justify-content: center; }
  .res-survey-admin-btns { flex-direction: column; }
  .res-admin-btn { width: 100%; }
}

/* ── 설문 배너 하단 관리자 도구 버튼 ── */
.res-survey-admin-btns {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(201,168,76,.2);
}
.res-admin-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border-radius: 10px;
  font-family: var(--ff-sans);
  text-decoration: none;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(201,168,76,.3);
  color: var(--white);
  transition: var(--transition);
  flex: 1;
  min-width: 200px;
}
.res-admin-btn:hover {
  background: rgba(201,168,76,.18);
  border-color: var(--accent);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(201,168,76,.2);
}
.res-admin-btn i {
  font-size: 1.1rem;
  color: var(--accent);
  flex-shrink: 0;
  width: 20px;
  text-align: center;
}
.res-admin-btn-title {
  font-size: .88rem;
  font-weight: 700;
  display: block;
  line-height: 1.3;
}
.res-admin-btn-sub {
  font-size: .74rem;
  color: rgba(255,255,255,.5);
  display: block;
  line-height: 1;
}
.res-admin-btn span { display: block; }

/* ── 다운로드 자료 탭 ── */
.res-download-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}
.res-download-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--radius);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: var(--transition);
}
.res-download-card:hover {
  background: rgba(255,255,255,.09);
  border-color: rgba(201,168,76,.3);
  transform: translateY(-2px);
}
.res-download-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: rgba(201,168,76,.15);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: var(--accent);
}
.res-download-card h4 {
  font-size: .95rem;
  font-weight: 600;
  color: var(--white);
  margin: 0;
  line-height: 1.4;
}
.res-download-card p {
  font-size: .83rem;
  color: rgba(255,255,255,.6);
  line-height: 1.6;
  margin: 0;
  flex: 1;
}
.res-download-meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.res-download-tag {
  font-size: .72rem;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 6px;
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.55);
}
.res-download-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 10px 18px;
  border-radius: 8px;
  font-size: .84rem;
  font-weight: 700;
  font-family: var(--ff-sans);
  background: rgba(201,168,76,.18);
  color: var(--accent-lt);
  border: 1px solid rgba(201,168,76,.3);
  cursor: pointer;
  text-decoration: none;
  transition: var(--transition);
  width: 100%;
}
.res-download-btn:hover {
  background: var(--accent);
  color: var(--navy);
  border-color: var(--accent);
}
.res-download-btn i { font-size: .85rem; }
.res-download-notice {
  margin-top: 24px;
  background: rgba(201,168,76,.08);
  border: 1px solid rgba(201,168,76,.18);
  border-radius: 10px;
  padding: 14px 18px;
  font-size: .82rem;
  color: rgba(255,255,255,.65);
  line-height: 1.7;
}
.res-download-notice i { color: var(--accent); margin-right: 5px; }

/* ── PDF 바로보기 뷰어 ── */
.res-view-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 10px 18px;
  border-radius: 8px;
  font-size: .84rem;
  font-weight: 700;
  font-family: var(--ff-sans);
  background: rgba(30,90,120,.25);
  color: #7ecff0;
  border: 1px solid rgba(126,207,240,.25);
  cursor: pointer;
  text-decoration: none;
  transition: var(--transition);
  width: 100%;
  margin-bottom: 0;
}
.res-view-btn:hover {
  background: rgba(30,90,120,.5);
  color: #b3e5fc;
  border-color: rgba(126,207,240,.5);
}
.res-view-btn i { font-size: .85rem; }
.res-view-btn.active {
  background: rgba(126,207,240,.15);
  color: #b3e5fc;
  border-color: rgba(126,207,240,.45);
}

/* PDF 뷰어 슬라이드 영역 — 카드 하단에서 펼쳐짐 */
.res-pdf-viewer {
  display: none;
  margin-top: 0;
  grid-column: 1 / -1;   /* 그리드 전체 너비 차지 */
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius);
  overflow: hidden;
  animation: pdfSlideDown .3s ease;
}
.res-pdf-viewer.open {
  display: block;
}
@keyframes pdfSlideDown {
  from { opacity: 0; transform: translateY(-10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.res-pdf-viewer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px;
  background: rgba(255,255,255,.05);
  border-bottom: 1px solid rgba(255,255,255,.08);
  font-size: .84rem;
  color: rgba(255,255,255,.75);
  font-weight: 600;
}
.res-pdf-viewer-header .res-pdf-close {
  background: none;
  border: none;
  color: rgba(255,255,255,.5);
  cursor: pointer;
  font-size: 1rem;
  padding: 4px 8px;
  border-radius: 6px;
  transition: var(--transition);
  font-family: var(--ff-sans);
}
.res-pdf-viewer-header .res-pdf-close:hover {
  background: rgba(255,255,255,.10);
  color: var(--white);
}
.res-pdf-viewer iframe {
  display: block;
  width: 100%;
  height: 700px;
  border: none;
  background: #fff;
}
@media (max-width: 768px) {
  .res-pdf-viewer iframe { height: 480px; }
}

/* 다운로드+바로보기 버튼 두 개를 나란히 배치 */
.res-download-card-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* 필터 바 */
.res-filter-bar {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 16px;
}

.res-search {
  width: 100%;
  max-width: 420px;
  padding: 10px 16px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.07);
  color: var(--white);
  font-family: var(--ff-sans);
  font-size: .88rem;
  outline: none;
  transition: border-color var(--transition), background var(--transition);
}
.res-search::placeholder { color: rgba(255,255,255,.35); }
.res-search:focus {
  border-color: rgba(201,168,76,.5);
  background: rgba(255,255,255,.10);
}

.res-filter-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.res-ftag {
  padding: 5px 13px;
  border-radius: 20px;
  font-size: .78rem;
  font-weight: 600;
  font-family: var(--ff-sans);
  background: rgba(255,255,255,.07);
  color: rgba(255,255,255,.55);
  border: 1px solid rgba(255,255,255,.10);
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}
.res-ftag:hover {
  background: rgba(255,255,255,.13);
  color: var(--white);
}
.res-ftag.active {
  background: rgba(201,168,76,.2);
  color: var(--accent-lt);
  border-color: rgba(201,168,76,.4);
}

.res-count-label {
  font-size: .78rem;
  color: rgba(255,255,255,.35);
  align-self: flex-start;
}

.res-empty-msg {
  text-align: center;
  padding: 32px 0;
  color: rgba(255,255,255,.35);
  font-size: .88rem;
}

/* 필터로 숨긴 행 */
.res-table tr.hidden { display: none; }

/* 각주 */
.res-footnote {
  margin-top: 24px;
  font-size: .78rem;
  color: rgba(255,255,255,.3);
  line-height: 1.7;
  text-align: center;
}
.res-footnote i { color: var(--accent); margin-right: 4px; }

/* 반응형 */
@media (max-width: 1024px) {
  .res-prompt-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .res-tab-dropdown-wrap { gap: 10px; }
  .res-tab-dropdown-inner { min-width: 0; width: 100%; }
  .res-tab-current-label { display: none; }
  .res-table { table-layout: auto; font-size: .8rem; }
  .res-table th, .res-table td { padding: 10px 10px; }
  .res-prompt-header { flex-direction: column; align-items: flex-start; }
  .res-copy-btn { align-self: flex-end; }
}

/* ═══════════════════════════════════════
   FOOTER
═══════════════════════════════════════ */
#footer {
  background: var(--navy);
  padding: 60px 0 0;
}

.footer-inner {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 64px;
  align-items: start;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.footer-logo { font-size: 2rem; }

.footer-brand p {
  margin-top: 12px;
  font-size: .88rem;
  color: rgba(255,255,255,.45);
  line-height: 1.7;
}

.footer-nav ul {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.footer-nav a {
  color: rgba(255,255,255,.55);
  font-size: .88rem;
  transition: color var(--transition);
}
.footer-nav a:hover { color: var(--accent); }

.footer-social {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.footer-social a {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.55);
  font-size: .9rem;
  transition: var(--transition);
}
.footer-social a:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--navy);
}

.footer-bottom {
  padding: 20px 0;
  text-align: center;
}
.footer-bottom p {
  font-size: .78rem;
  color: rgba(255,255,255,.25);
}

/* ═══════════════════════════════════════
   TOAST
═══════════════════════════════════════ */
.toast {
  position: fixed;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--navy);
  color: var(--white);
  padding: 14px 28px;
  border-radius: 50px;
  font-size: .9rem;
  font-weight: 500;
  box-shadow: var(--shadow-lg);
  opacity: 0;
  transition: opacity .3s, transform .3s;
  z-index: 9999;
  white-space: nowrap;
  pointer-events: none;
}
.toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.toast.success::before {
  content: '✓  ';
  color: var(--accent);
  font-weight: 700;
}

/* ═══════════════════════════════════════
   SCROLL ANIMATIONS
═══════════════════════════════════════ */
.fade-in-up {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .6s ease, transform .6s ease;
}
.fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ═══════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════ */
@media (max-width: 1024px) {
  .about-grid { grid-template-columns: 1fr 1fr; gap: 48px; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .process-timeline {
    grid-template-columns: repeat(2, 1fr);
    gap: 48px;
  }
  .process-timeline::before { display: none; }
  .process-step { flex-direction: row; text-align: left; align-items: flex-start; gap: 20px; }
  .step-icon { margin-bottom: 0; flex-shrink: 0; }
  .cases-grid { grid-template-columns: repeat(2, 1fr); }
  .testimonial-card { flex: 0 0 calc(50% - 12px); }
  .contact-grid { grid-template-columns: 1fr 1fr; gap: 48px; }
}

@media (max-width: 768px) {
  .hamburger { display: flex; }

  .nav-links {
    position: fixed;
    top: var(--nav-h);
    left: 0; right: 0;
    background: rgba(13,27,42,.97);
    backdrop-filter: blur(16px);
    flex-direction: column;
    align-items: stretch;
    padding: 24px;
    gap: 4px;
    max-height: 0;
    overflow: hidden;
    transition: max-height .4s cubic-bezier(.4,0,.2,1);
  }
  .nav-links.open { max-height: 500px; }
  .nav-links a { padding: 14px 16px; font-size: 1rem; border-radius: 10px; }
  .nav-cta { text-align: center; margin-top: 8px; }

  .about-grid { grid-template-columns: 1fr; }
  .about-img-wrap { max-width: 340px; margin: 0 auto; }

  .services-grid { grid-template-columns: 1fr; }
  .cases-grid { grid-template-columns: 1fr; }

  .hero-stats { justify-content: center; }
  .stat { padding: 0 20px; }

  .contact-grid { grid-template-columns: 1fr; }
  .contact-form { padding: 32px 24px; }

  .testimonial-card { flex: 0 0 calc(100% - 0px); }

  .footer-inner { grid-template-columns: 1fr; gap: 40px; }
  .footer-social { flex-direction: row; }

  .hero-scroll-hint { display: none; }

  #process { padding: 80px 0; }
  .process-timeline { grid-template-columns: 1fr; gap: 40px; }
  .process-step { align-items: center; text-align: center; flex-direction: column; }
  .step-icon { margin-bottom: 16px; }
}

@media (max-width: 480px) {
  .hero-title { font-size: 2rem; }
  .section-title { font-size: 1.7rem; }
  .about-tags { grid-template-columns: 1fr; }
  .hero-btns { flex-direction: column; }
  .btn { justify-content: center; }
}

/* ═══════════════════════════════════════════════════════
   JOB웹 Professional — AI 자기소개서 분석 섹션
═══════════════════════════════════════════════════════ */

/* 전체 래퍼 */
.jwp-wrap {
  margin-top: 36px;
  border-radius: var(--radius);
  border: 1px solid rgba(201,168,76,.25);
  background: linear-gradient(160deg, rgba(30,58,95,.45) 0%, rgba(13,27,42,.7) 100%);
  overflow: hidden;
}

/* 헤더 */
.jwp-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 24px 28px 20px;
  border-bottom: 1px solid rgba(201,168,76,.2);
  background: linear-gradient(90deg, rgba(201,168,76,.12) 0%, transparent 60%);
}
.jwp-header-left { display: flex; flex-direction: column; gap: 4px; }
.jwp-badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: .72rem; font-weight: 700; font-family: var(--ff-sans);
  color: var(--accent); letter-spacing: .05em; text-transform: uppercase;
}
.jwp-badge i { font-size: .75rem; }
.jwp-title {
  font-family: var(--ff-serif);
  font-size: 1.35rem; font-weight: 700;
  color: var(--white); margin: 0; line-height: 1.2;
}
.jwp-title em { color: var(--accent); font-style: normal; }
.jwp-subtitle { font-size: .82rem; color: rgba(255,255,255,.55); font-family: var(--ff-sans); margin: 0; }

/* 스텝 인디케이터 */
.jwp-step-indicator {
  display: flex; align-items: center; gap: 6px;
  font-size: .78rem; font-family: var(--ff-sans);
}
.jwp-step {
  padding: 4px 12px; border-radius: 20px;
  border: 1px solid rgba(255,255,255,.15);
  color: rgba(255,255,255,.35);
  transition: var(--transition);
}
.jwp-step.active {
  background: var(--accent); color: var(--navy);
  border-color: var(--accent); font-weight: 700;
}
.jwp-step.done {
  background: rgba(201,168,76,.2); color: var(--accent);
  border-color: rgba(201,168,76,.4);
}
.jwp-step-indicator i { color: rgba(255,255,255,.2); font-size: .65rem; }

/* 입력 카드 */
.jwp-card {
  padding: 28px;
}
.jwp-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.jwp-col-2  { grid-column: span 1; }
.jwp-col-full { grid-column: 1 / -1; }

/* 레이블 */
.jwp-label {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
  font-size: .82rem; font-weight: 600; color: rgba(255,255,255,.8);
  font-family: var(--ff-sans); margin-bottom: 7px;
}
.jwp-label i { color: var(--accent); width: 14px; text-align: center; font-size: .8rem; }
.jwp-req { color: #ef4444; font-size: .78rem; }
.jwp-label-sub { font-size: .74rem; font-weight: 400; color: rgba(255,255,255,.4); }

/* 인풋 / 텍스트에리어 */
.jwp-input, .jwp-textarea {
  width: 100%; box-sizing: border-box;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  color: var(--white);
  font-family: var(--ff-sans);
  font-size: .88rem;
  padding: 11px 14px;
  transition: border-color .2s, background .2s;
  outline: none;
  resize: vertical;
}
.jwp-input::placeholder, .jwp-textarea::placeholder { color: rgba(255,255,255,.25); }
.jwp-input:focus, .jwp-textarea:focus {
  border-color: var(--accent);
  background: rgba(201,168,76,.07);
}
.jwp-input.jwp-error, .jwp-textarea.jwp-error {
  border-color: #ef4444;
  background: rgba(239,68,68,.06);
}
.jwp-charcount {
  font-size: .74rem; color: rgba(255,255,255,.35);
  font-family: var(--ff-sans); text-align: right; margin-top: 4px;
}
#jwp-charcount { color: var(--accent-lt); font-weight: 600; }

/* 하단 액션 */
.jwp-actions {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 12px;
  margin-top: 22px; padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.07);
}
.jwp-privacy-note {
  font-size: .76rem; color: rgba(255,255,255,.3);
  font-family: var(--ff-sans); display: flex; align-items: center; gap: 6px;
}
.jwp-privacy-note i { color: var(--accent); opacity: .7; }

/* 분석 시작 버튼 */
.jwp-analyze-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 13px 30px; border-radius: 12px;
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dk) 100%);
  color: var(--navy); font-weight: 700; font-size: .92rem;
  font-family: var(--ff-sans); border: none; cursor: pointer;
  transition: var(--transition);
  box-shadow: 0 6px 20px rgba(201,168,76,.4);
}
.jwp-analyze-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 32px rgba(201,168,76,.55);
}
.jwp-analyze-btn i { font-size: .95rem; }

/* 로딩 */
.jwp-loading {
  padding: 60px 28px;
  text-align: center;
}
.jwp-loading-inner { display: flex; flex-direction: column; align-items: center; gap: 20px; }
.jwp-spinner {
  width: 52px; height: 52px;
  border: 3px solid rgba(201,168,76,.2);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: jwpSpin 1s linear infinite;
}
@keyframes jwpSpin { to { transform: rotate(360deg); } }
.jwp-loading-text {
  font-size: .92rem; color: var(--accent-lt);
  font-family: var(--ff-sans); font-weight: 500;
}
.jwp-loading-steps {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px;
  max-width: 480px;
}
.jwp-ls {
  padding: 5px 14px; border-radius: 20px;
  font-size: .76rem; font-family: var(--ff-sans);
  color: rgba(255,255,255,.25);
  border: 1px solid rgba(255,255,255,.08);
  transition: all .4s ease;
}
.jwp-ls.active { color: var(--accent); border-color: rgba(201,168,76,.4); background: rgba(201,168,76,.1); }
.jwp-ls.current { font-weight: 700; box-shadow: 0 0 12px rgba(201,168,76,.3); }

/* 결과 영역 */
.jwp-result { padding: 0 28px 28px; }
.jwp-result-header {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 10px;
  padding: 20px 0 16px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.jwp-result-title {
  font-family: var(--ff-sans); font-size: 1rem; font-weight: 700;
  color: var(--white); margin: 0; display: flex; align-items: center; gap: 8px;
}
.jwp-result-title i { color: var(--accent); }
.jwp-result-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* 점수 행 */
.jwp-score-row {
  display: flex; flex-wrap: wrap; gap: 12px;
  align-items: stretch;
  padding: 20px 0 16px;
}
.jwp-grade-badge {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 12px 20px; border-radius: 14px;
  border: 2px solid; min-width: 80px;
  flex-shrink: 0;
}
.jwp-grade-letter { font-size: 1.8rem; font-weight: 900; font-family: var(--ff-serif); line-height: 1; }
.jwp-grade-desc   { font-size: .68rem; font-family: var(--ff-sans); color: rgba(255,255,255,.6); margin-top: 4px; text-align: center; }
.jwp-score-card {
  flex: 1; min-width: 120px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px; padding: 12px 14px;
}
.jwp-score-label { font-size: .74rem; color: rgba(255,255,255,.5); font-family: var(--ff-sans); margin-bottom: 4px; }
.jwp-score-val   { font-size: 1.1rem; font-weight: 700; font-family: var(--ff-sans); margin-bottom: 8px; }
.jwp-score-bar-bg { height: 5px; background: rgba(255,255,255,.08); border-radius: 3px; overflow: hidden; }
.jwp-score-bar   { height: 100%; border-radius: 3px; transition: width .8s cubic-bezier(.4,0,.2,1); }

/* 결과 탭 */
.jwp-result-tabs {
  display: flex; flex-wrap: wrap; gap: 6px;
  padding: 16px 0 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
  margin-bottom: 0;
}
.jwp-rtab {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 16px; border-radius: 8px 8px 0 0;
  font-size: .8rem; font-weight: 600; font-family: var(--ff-sans);
  background: transparent; color: rgba(255,255,255,.45);
  border: 1px solid transparent; border-bottom: none;
  cursor: pointer; transition: var(--transition);
}
.jwp-rtab:hover { color: var(--accent-lt); }
.jwp-rtab.active {
  background: rgba(201,168,76,.12);
  color: var(--accent); border-color: rgba(201,168,76,.25);
  border-bottom: 1px solid rgba(201,168,76,.12);
}
.jwp-rtab i { font-size: .78rem; }

/* 결과 패널 */
.jwp-result-panel { display: none; padding: 20px 0; }
.jwp-result-panel.active { display: block; }
.jwp-panel-inner { display: flex; flex-direction: column; gap: 14px; }
.jwp-panel-desc { font-size: .82rem; color: rgba(255,255,255,.45); font-family: var(--ff-sans); margin: 0; }

/* 정보 박스 */
.jwp-info-box {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px; padding: 14px 16px;
  font-size: .84rem; font-family: var(--ff-sans);
  color: rgba(255,255,255,.7); line-height: 1.6;
}
.jwp-info-box strong { color: var(--white); }
.jwp-info-box.blue { border-color: rgba(96,165,250,.3); background: rgba(96,165,250,.05); }
.jwp-info-box code {
  background: rgba(201,168,76,.2); color: var(--accent-lt);
  padding: 2px 7px; border-radius: 5px; font-size: .78rem;
}

/* 종합 평가 그리드 */
.jwp-overview-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(160px,1fr));
  gap: 10px;
}
.jwp-ov-card {
  background: rgba(255,255,255,.04);
  border-radius: 10px; padding: 14px;
  border-left: 3px solid rgba(255,255,255,.1);
  font-family: var(--ff-sans);
}
.jwp-ov-card.good { border-left-color: #22c55e; }
.jwp-ov-card.warn { border-left-color: #eab308; }
.jwp-ov-card.bad  { border-left-color: #ef4444; }
.jwp-ov-card i    { font-size: .9rem; color: rgba(255,255,255,.4); display: block; margin-bottom: 6px; }
.jwp-ov-card strong { font-size: .78rem; color: rgba(255,255,255,.6); display: block; margin-bottom: 4px; }
.jwp-ov-card span   { font-size: .82rem; color: var(--white); display: block; font-weight: 600; }
.jwp-ov-card small  { font-size: .72rem; color: rgba(255,255,255,.35); display: block; margin-top: 4px; }

/* 핵심 조언 박스 */
.jwp-advice-box {
  background: rgba(201,168,76,.07);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 12px; padding: 18px 20px;
}
.jwp-advice-box h5 {
  font-size: .88rem; font-weight: 700; color: var(--accent);
  font-family: var(--ff-sans); margin: 0 0 10px;
  display: flex; align-items: center; gap: 8px;
}
.jwp-advice-box ul { margin: 0; padding: 0 0 0 4px; list-style: none; display: flex; flex-direction: column; gap: 7px; }
.jwp-advice-box li { font-size: .83rem; color: rgba(255,255,255,.75); font-family: var(--ff-sans); line-height: 1.5; }

/* 문장별 피드백 카드 */
.jwp-sentence-card {
  display: flex; gap: 12px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px; padding: 14px;
  border-left: 3px solid rgba(255,255,255,.1);
}
.jwp-sentence-card.good { border-left-color: #22c55e; }
.jwp-sentence-card.warn { border-left-color: #eab308; }
.jwp-sentence-card.bad  { border-left-color: #ef4444; }
.jwp-sentence-num {
  font-size: .72rem; font-weight: 700; color: rgba(255,255,255,.3);
  font-family: var(--ff-sans); min-width: 20px; margin-top: 2px;
}
.jwp-sentence-body { flex: 1; }
.jwp-sentence-text  { font-size: .82rem; color: rgba(255,255,255,.65); font-family: var(--ff-sans); margin: 0 0 6px; line-height: 1.55; font-style: italic; }
.jwp-sentence-ok    { font-size: .8rem; color: #22c55e; font-family: var(--ff-sans); margin: 0; }
.jwp-sentence-issue { font-size: .8rem; color: #fbbf24; font-family: var(--ff-sans); margin: 0 0 2px; }
.jwp-sentence-tip   { font-size: .78rem; color: rgba(255,255,255,.45); font-family: var(--ff-sans); margin: 0 0 6px; }

/* 수정본 */
.jwp-rewrite-note {
  background: rgba(96,165,250,.07);
  border: 1px solid rgba(96,165,250,.2);
  border-radius: 10px; padding: 12px 16px;
  font-size: .82rem; color: rgba(255,255,255,.65);
  font-family: var(--ff-sans); line-height: 1.55;
}
.jwp-rewrite-note i { color: #60a5fa; margin-right: 6px; }
.jwp-rewrite-note strong { color: var(--white); }
.jwp-rewrite-box { position: relative; margin-top: 8px; }
.jwp-rewrite-pre {
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px; padding: 18px 20px;
  font-family: 'Noto Sans KR', monospace;
  font-size: .82rem; color: rgba(255,255,255,.8);
  white-space: pre-wrap; word-break: break-all;
  line-height: 1.75; margin: 0; overflow-x: auto;
}
.jwp-btn-sm {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px; border-radius: 7px;
  font-size: .76rem; font-weight: 600; font-family: var(--ff-sans);
  background: rgba(201,168,76,.15); color: var(--accent);
  border: 1px solid rgba(201,168,76,.3); cursor: pointer;
  transition: var(--transition); margin-bottom: 8px;
}
.jwp-btn-sm:hover { background: rgba(201,168,76,.25); }

/* 면접 예상질문 */
.jwp-iq-card {
  display: flex; gap: 14px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px; padding: 14px 16px;
}
.jwp-iq-num {
  font-size: .72rem; font-weight: 700; color: var(--accent);
  background: rgba(201,168,76,.15); border-radius: 6px;
  padding: 4px 8px; min-width: 32px; text-align: center;
  align-self: flex-start; font-family: var(--ff-sans); white-space: nowrap;
}
.jwp-iq-body { flex: 1; }
.jwp-iq-q   { font-size: .86rem; color: var(--white); font-family: var(--ff-sans); margin: 0 0 6px; font-weight: 600; line-height: 1.5; }
.jwp-iq-tip { font-size: .78rem; color: rgba(255,255,255,.45); font-family: var(--ff-sans); margin: 0; display: flex; align-items: flex-start; gap: 6px; }
.jwp-iq-tip i { color: #eab308; margin-top: 2px; flex-shrink: 0; }

/* ── 제출 가능본 탭 버튼 강조 ── */
.jwp-rtab-submit {
  background: linear-gradient(135deg, rgba(201,168,76,.25), rgba(201,168,76,.1));
  border: 1px solid rgba(201,168,76,.4) !important;
  color: var(--accent) !important;
}
.jwp-rtab-submit.active {
  background: linear-gradient(135deg, var(--accent), var(--accent-dk)) !important;
  color: var(--navy) !important;
}
.jwp-rtab-new {
  display: inline-block;
  background: #ef4444; color: #fff;
  font-size: .62rem; font-weight: 800;
  padding: 1px 5px; border-radius: 4px;
  margin-left: 4px; vertical-align: middle;
  letter-spacing: .04em;
}

/* ── 제출 가능본 패널 ── */
.jwp-submit-quality {
  display: flex; align-items: flex-start; gap: 18px;
  padding: 18px 20px; margin-bottom: 20px;
  background: rgba(34,197,94,.07);
  border: 1px solid rgba(34,197,94,.2);
  border-radius: 12px;
}
.jwp-sq-badge {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 66px; height: 66px; border-radius: 50%;
  border: 3px solid; flex-shrink: 0;
  font-family: var(--ff-sans);
}
.jwp-sq-num { font-size: 1.5rem; font-weight: 800; line-height: 1; }
.jwp-sq-unit { font-size: .68rem; font-weight: 600; opacity: .7; }
.jwp-sq-info { flex: 1; }
.jwp-sq-info strong { font-size: .9rem; color: var(--white); font-family: var(--ff-sans); display: block; margin-bottom: 5px; }
.jwp-sq-info p { font-size: .78rem; color: rgba(255,255,255,.55); margin: 0; line-height: 1.6; font-family: var(--ff-sans); }
.jwp-sq-info code { background: rgba(255,255,255,.1); padding: 1px 5px; border-radius: 4px; font-size: .75rem; color: var(--accent); }

.jwp-submit-notice {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 14px 18px; margin-bottom: 20px;
  background: rgba(201,168,76,.06);
  border-left: 3px solid var(--accent);
  border-radius: 0 8px 8px 0;
  font-size: .82rem; color: rgba(255,255,255,.7);
  font-family: var(--ff-sans); line-height: 1.6;
}
.jwp-submit-notice i { color: var(--accent); font-size: 1.1rem; flex-shrink: 0; margin-top: 2px; }
.jwp-submit-notice strong { color: var(--white); }

.jwp-submit-section-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 12px;
  padding: 18px 20px;
  margin-bottom: 14px;
  transition: border-color .2s;
}
.jwp-submit-section-card:hover { border-color: rgba(201,168,76,.3); }
.jwp-submit-section-label {
  font-size: .8rem; font-weight: 700;
  color: var(--accent); font-family: var(--ff-sans);
  margin-bottom: 12px; display: flex; align-items: center; gap: 8px;
  text-transform: uppercase; letter-spacing: .06em;
}
.jwp-submit-section-label i { font-size: .9rem; }
.jwp-submit-section-text {
  font-size: .87rem; color: rgba(255,255,255,.85);
  font-family: var(--ff-sans); line-height: 1.9;
  margin: 0; white-space: pre-line;
}

.jwp-submit-actions {
  display: flex; gap: 10px; flex-wrap: wrap;
  margin: 20px 0 0;
}
.jwp-btn-submit-copy {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 10px 20px; border-radius: 9px;
  background: var(--accent); color: var(--navy);
  font-weight: 700; font-size: .84rem; font-family: var(--ff-sans);
  border: none; cursor: pointer; transition: var(--transition);
  box-shadow: 0 4px 14px rgba(201,168,76,.3);
}
.jwp-btn-submit-copy:hover { background: var(--accent-lt); transform: translateY(-1px); }

.jwp-submit-textarea {
  width: 100%; box-sizing: border-box;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 10px; padding: 16px;
  color: var(--white); font-size: .84rem;
  font-family: var(--ff-mono, 'Courier New', monospace);
  line-height: 1.8; resize: vertical;
  transition: border-color .2s;
}
.jwp-submit-textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(201,168,76,.15);
}

.jwp-submit-verdict {
  margin-top: 20px; padding: 16px 18px;
  background: rgba(201,168,76,.07);
  border: 1px solid rgba(201,168,76,.25);
  border-radius: 10px;
  font-size: .82rem; color: rgba(255,255,255,.75);
  font-family: var(--ff-sans); line-height: 1.6;
}
.jwp-submit-verdict strong { color: var(--accent); }

/* 발송 섹션 */
.jwp-send-section {
  margin-top: 24px; padding: 20px;
  background: rgba(201,168,76,.06);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 14px;
}
.jwp-send-header {
  display: flex; align-items: flex-start; gap: 14px; margin-bottom: 14px;
}
.jwp-send-header i {
  font-size: 1.3rem; color: var(--accent);
  margin-top: 2px; flex-shrink: 0;
}
.jwp-send-header strong { font-size: .92rem; color: var(--white); font-family: var(--ff-sans); display: block; margin-bottom: 3px; }
.jwp-send-header span   { font-size: .78rem; color: rgba(255,255,255,.45); font-family: var(--ff-sans); }
/* ─── 메일 하단 명함 미리보기 ─── */
.jwp-card-preview {
  margin-top: 20px;
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 12px;
  overflow: hidden;
  background: rgba(13,27,42,.5);
}
.jwp-card-preview-label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  background: rgba(201,168,76,.08);
  border-bottom: 1px solid rgba(201,168,76,.15);
  font-size: .75rem;
  font-weight: 600;
  color: var(--accent);
  font-family: var(--ff-sans);
  letter-spacing: .03em;
}
.jwp-card-preview-inner {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 16px 20px;
  flex-wrap: wrap;
}
.jwp-card-img {
  width: 180px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.1);
  box-shadow: 0 4px 16px rgba(0,0,0,.35);
  flex-shrink: 0;
  object-fit: cover;
}
.jwp-card-info {
  flex: 1;
  min-width: 200px;
  font-family: var(--ff-sans);
}
.jwp-card-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--white);
  margin: 0 0 2px;
}
.jwp-card-org {
  font-size: .78rem;
  color: var(--accent);
  margin: 0 0 10px;
  letter-spacing: .02em;
}
.jwp-card-contacts {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 10px;
}
.jwp-card-contacts span {
  font-size: .75rem;
  color: rgba(255,255,255,.55);
  display: flex;
  align-items: center;
  gap: 7px;
}
.jwp-card-contacts i {
  color: var(--accent);
  font-size: .7rem;
  width: 14px;
  flex-shrink: 0;
}
.jwp-card-slogan {
  display: inline-block;
  background: #2d7a3a;
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 5px;
  letter-spacing: .04em;
}
@media (max-width: 480px) {
  .jwp-card-preview-inner { flex-direction: column; align-items: flex-start; }
  .jwp-card-img { width: 100%; max-width: 260px; }
}

/* 발신자 배지 */
.jwp-sender-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 9px 16px;
  margin-bottom: 14px;
  background: rgba(201,168,76,.08);
  border: 1px solid rgba(201,168,76,.22);
  border-radius: 10px;
  font-family: var(--ff-sans);
}
.jwp-sender-badge i {
  font-size: .9rem;
  color: var(--accent);
  flex-shrink: 0;
}
.jwp-sender-name {
  font-size: .88rem;
  font-weight: 700;
  color: var(--accent-lt);
  letter-spacing: .02em;
}
.jwp-sender-email {
  font-size: .78rem;
  color: rgba(255,255,255,.45);
  font-family: var(--ff-sans);
}
.jwp-sender-org {
  font-size: .72rem;
  color: rgba(255,255,255,.3);
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.07);
}

.jwp-send-row {
  display: flex; gap: 10px; flex-wrap: wrap;
}
.jwp-send-email-input { flex: 1; min-width: 220px; }
.jwp-send-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 22px; border-radius: 10px;
  background: var(--accent); color: var(--navy);
  font-weight: 700; font-size: .88rem; font-family: var(--ff-sans);
  border: none; cursor: pointer; transition: var(--transition);
  white-space: nowrap; flex-shrink: 0;
  box-shadow: 0 4px 16px rgba(201,168,76,.35);
}
.jwp-send-btn:hover { background: var(--accent-lt); transform: translateY(-1px); }
.jwp-send-btn:disabled { opacity: .6; cursor: not-allowed; transform: none; }
/* 발송 모드 선택 라디오 */
.jwp-send-mode-row {
  display: flex; gap: 16px; flex-wrap: wrap;
  margin-bottom: 14px;
}
.jwp-send-mode-label {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: .82rem; color: rgba(255,255,255,.7);
  font-family: var(--ff-sans); cursor: pointer;
  padding: 7px 14px; border-radius: 8px;
  border: 1px solid rgba(255,255,255,.1);
  transition: border-color .2s, background .2s;
}
.jwp-send-mode-label:has(input:checked) {
  border-color: var(--accent);
  background: rgba(201,168,76,.1);
  color: var(--accent);
}
.jwp-send-mode-label input[type="radio"] {
  accent-color: var(--accent);
  width: 14px; height: 14px; cursor: pointer;
}
.jwp-send-mode-label i { font-size: .78rem; }

.jwp-send-note {
  font-size: .8rem; font-family: var(--ff-sans);
  margin-top: 10px; line-height: 1.6;
  white-space: pre-line; /* \n 줄바꿈 지원 */
}
.jwp-send-note.success { color: #22c55e; }
.jwp-send-note.error   { color: #f87171; }
.jwp-send-note.copy    { color: #60a5fa; }

/* 구버전 호환 */
.jwp-send-status-ok   { color: #22c55e; }
.jwp-send-status-warn { color: #fbbf24; }
.jwp-send-status-info { color: rgba(255,255,255,.55); }

/* 공통 아웃라인 버튼 */
.jwp-btn-outline {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 16px; border-radius: 8px;
  font-size: .78rem; font-weight: 600; font-family: var(--ff-sans);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.65);
  border: 1px solid rgba(255,255,255,.12);
  cursor: pointer; transition: var(--transition);
}
.jwp-btn-outline:hover { background: rgba(255,255,255,.1); color: var(--white); }

/* 필드 그룹 */
.jwp-field-group { display: flex; flex-direction: column; }

/* 반응형 */
@media (max-width: 768px) {
  .jwp-form-grid { grid-template-columns: 1fr; }
  .jwp-col-2 { grid-column: span 1; }
  .jwp-header { flex-direction: column; align-items: flex-start; }
  .jwp-step-indicator { flex-wrap: wrap; }
  .jwp-score-row { flex-direction: column; }
  .jwp-result-tabs { gap: 4px; }
  .jwp-rtab { font-size: .74rem; padding: 7px 11px; }
  .jwp-overview-grid { grid-template-columns: 1fr 1fr; }
  .jwp-card { padding: 20px 16px; }
  .jwp-result { padding: 0 16px 20px; }
  .jwp-actions { flex-direction: column; align-items: stretch; }
  .jwp-analyze-btn { justify-content: center; }
  .jwp-send-row { flex-direction: column; }
  .jwp-send-btn { width: 100%; justify-content: center; }
}

/* ═══════════════════════════════════════════════════════════
   네비게이션 회원 영역
═══════════════════════════════════════════════════════════ */
.nav-member-area {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: 12px;
}
.nav-member-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 20px;
  font-size: .78rem;
  font-weight: 600;
  font-family: var(--ff-sans);
  border: none;
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}
.nav-login-btn {
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.75);
  border: 1px solid rgba(255,255,255,.15);
}
.nav-login-btn:hover {
  background: rgba(255,255,255,.15);
  color: var(--white);
}
.nav-signup-btn {
  background: var(--accent);
  color: var(--navy);
  box-shadow: 0 2px 10px rgba(201,168,76,.4);
}
.nav-signup-btn:hover {
  background: var(--accent-lt);
  transform: translateY(-1px);
}
.nav-user-btn {
  background: rgba(96,165,250,.15);
  color: #93c5fd;
  border: 1px solid rgba(96,165,250,.25);
}
.nav-user-btn:hover {
  background: rgba(96,165,250,.25);
  color: #bfdbfe;
}
.nav-logout-btn {
  background: rgba(239,68,68,.1);
  color: #fca5a5;
  border: 1px solid rgba(239,68,68,.2);
}
.nav-logout-btn:hover {
  background: rgba(239,68,68,.2);
  color: #fecaca;
}

@media (max-width: 768px) {
  .nav-member-area {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    background: rgba(13,27,42,.97);
    backdrop-filter: blur(16px);
    border-top: 1px solid rgba(255,255,255,.08);
    justify-content: center;
    padding: 10px 16px;
    gap: 8px;
    z-index: 4000;
  }
  .nav-member-btn { font-size: .72rem; padding: 8px 12px; }
}

/* ═══════════════════════════════════════════════════════════
   회원 인증 모달 (auth-overlay / auth-modal)
═══════════════════════════════════════════════════════════ */
.auth-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.65);
  backdrop-filter: blur(6px);
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}
.auth-overlay.open {
  opacity: 1;
  pointer-events: auto;
}
.auth-modal {
  background: linear-gradient(160deg, #1a2d42 0%, #0d1b2a 100%);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 20px;
  width: 100%;
  max-width: 440px;
  box-shadow: 0 24px 64px rgba(0,0,0,.55);
  overflow: hidden;
  transform: translateY(20px) scale(.97);
  transition: transform .25s cubic-bezier(.4,0,.2,1);
}
.auth-overlay.open .auth-modal {
  transform: translateY(0) scale(1);
}

/* 모달 헤더 */
.auth-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px 16px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.auth-modal-logo {
  font-family: var(--ff-serif);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--white);
  letter-spacing: .04em;
}
.auth-modal-logo .dot { color: var(--accent); }
.auth-modal-close {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.5);
  font-size: .9rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
}
.auth-modal-close:hover {
  background: rgba(239,68,68,.15);
  color: #fca5a5;
  border-color: rgba(239,68,68,.2);
}

/* pane 공통 */
.auth-pane {
  padding: 28px 28px 24px;
}
.auth-title {
  font-family: var(--ff-serif);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--white);
  margin: 0 0 6px;
}
.auth-sub {
  font-size: .82rem;
  color: rgba(255,255,255,.45);
  font-family: var(--ff-sans);
  margin: 0 0 20px;
  line-height: 1.55;
}
.auth-switch {
  font-size: .8rem;
  color: rgba(255,255,255,.35);
  font-family: var(--ff-sans);
  text-align: center;
  margin: 14px 0 0;
}

/* 입력 필드 */
.auth-field {
  margin-bottom: 14px;
}
.auth-label {
  display: block;
  font-size: .76rem;
  font-weight: 600;
  color: rgba(255,255,255,.5);
  font-family: var(--ff-sans);
  margin-bottom: 6px;
  letter-spacing: .03em;
}
.auth-label i { margin-right: 5px; font-size: .7rem; }
.auth-input {
  width: 100%;
  padding: 11px 14px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--white);
  font-size: .88rem;
  font-family: var(--ff-sans);
  outline: none;
  transition: border-color .2s, background .2s;
  box-sizing: border-box;
}
.auth-input::placeholder { color: rgba(255,255,255,.25); }
.auth-input:focus {
  border-color: var(--accent);
  background: rgba(201,168,76,.06);
}

/* 동의 체크박스 */
.auth-agree {
  margin-bottom: 14px;
}
.auth-agree-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: .78rem;
  color: rgba(255,255,255,.45);
  font-family: var(--ff-sans);
  cursor: pointer;
  line-height: 1.5;
}
.auth-agree-label input[type="checkbox"] {
  margin-top: 2px;
  accent-color: var(--accent);
  flex-shrink: 0;
}

/* 에러 메시지 */
.auth-error {
  font-size: .77rem;
  color: #fca5a5;
  font-family: var(--ff-sans);
  margin: -6px 0 10px;
  min-height: 18px;
  line-height: 1.4;
}

/* 제출 버튼 */
.auth-submit-btn {
  width: 100%;
  padding: 13px;
  border-radius: 12px;
  border: none;
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dk) 100%);
  color: var(--navy);
  font-size: .9rem;
  font-weight: 700;
  font-family: var(--ff-sans);
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 4px 18px rgba(201,168,76,.35);
}
.auth-submit-btn:hover {
  background: linear-gradient(135deg, var(--accent-lt) 0%, var(--accent) 100%);
  transform: translateY(-1px);
  box-shadow: 0 6px 24px rgba(201,168,76,.45);
}

/* 로그아웃 버튼 */
.auth-logout-btn {
  width: 100%;
  padding: 11px;
  border-radius: 12px;
  border: 1px solid rgba(239,68,68,.25);
  background: rgba(239,68,68,.08);
  color: #fca5a5;
  font-size: .88rem;
  font-weight: 600;
  font-family: var(--ff-sans);
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
}
.auth-logout-btn:hover {
  background: rgba(239,68,68,.18);
  border-color: rgba(239,68,68,.4);
}

/* 링크 버튼 */
.auth-link {
  background: none;
  border: none;
  color: var(--accent);
  font-size: .8rem;
  font-family: var(--ff-sans);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  padding: 0;
  transition: color .2s;
}
.auth-link:hover { color: var(--accent-lt); }

/* 마이페이지 */
.auth-mypage-info {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  margin-bottom: 18px;
}
.auth-mypage-avatar {
  font-size: 2.4rem;
  color: var(--accent);
  flex-shrink: 0;
  line-height: 1;
}
.auth-mypage-name {
  font-size: .96rem;
  font-weight: 700;
  color: var(--white);
  font-family: var(--ff-sans);
  margin: 0 0 3px;
}
.auth-mypage-email {
  font-size: .78rem;
  color: rgba(255,255,255,.4);
  font-family: var(--ff-sans);
  margin: 0 0 6px;
}
.auth-mypage-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .72rem;
  font-weight: 700;
  color: #4ade80;
  background: rgba(74,222,128,.12);
  border: 1px solid rgba(74,222,128,.2);
  padding: 3px 8px;
  border-radius: 20px;
  font-family: var(--ff-sans);
}
.auth-mypage-perks {
  padding: 14px 16px;
  background: rgba(201,168,76,.06);
  border: 1px solid rgba(201,168,76,.15);
  border-radius: 12px;
}
.auth-mypage-perks h5 {
  font-size: .8rem;
  font-weight: 700;
  color: var(--accent);
  font-family: var(--ff-sans);
  margin: 0 0 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.auth-mypage-perks ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.auth-mypage-perks li {
  font-size: .78rem;
  color: rgba(255,255,255,.6);
  font-family: var(--ff-sans);
  display: flex;
  align-items: center;
  gap: 8px;
}
.auth-mypage-perks li i { color: var(--accent); font-size: .75rem; }

/* 가입 완료 */
.auth-done-icon {
  font-size: 3.2rem;
  color: #4ade80;
  text-align: center;
  margin-bottom: 12px;
  animation: popIn .4s cubic-bezier(.175,.885,.32,1.275);
}
@keyframes popIn {
  from { transform: scale(0); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}

/* ═══════════════════════════════════════════════════════════
   회원 전용 자료 섹션 (자료실 탭)
═══════════════════════════════════════════════════════════ */
.res-member-section {
  margin-top: 36px;
  border-top: 2px solid rgba(201,168,76,.2);
  padding-top: 28px;
}
.res-member-section-header {
  margin-bottom: 20px;
}
.res-member-section-header h4 {
  font-family: var(--ff-serif);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--white);
  margin: 8px 0 5px;
}
.res-member-section-header p {
  font-size: .82rem;
  color: rgba(255,255,255,.45);
  font-family: var(--ff-sans);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.res-member-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .72rem;
  font-weight: 700;
  color: #fbbf24;
  background: rgba(251,191,36,.12);
  border: 1px solid rgba(251,191,36,.25);
  padding: 4px 10px;
  border-radius: 20px;
  font-family: var(--ff-sans);
  letter-spacing: .03em;
}
.res-member-join-btn {
  background: none;
  border: 1px solid var(--accent);
  color: var(--accent);
  font-size: .76rem;
  font-family: var(--ff-sans);
  padding: 4px 10px;
  border-radius: 12px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: var(--transition);
}
.res-member-join-btn:hover {
  background: var(--accent);
  color: var(--navy);
}

/* 회원 카드 */
.res-member-card {
  position: relative;
  overflow: hidden;
  border-color: rgba(201,168,76,.15) !important;
  background: linear-gradient(145deg, rgba(30,58,95,.4) 0%, rgba(13,27,42,.6) 100%) !important;
}
.res-member-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid rgba(201,168,76,.08);
  pointer-events: none;
}

/* 잠금 오버레이 */
.res-member-lock-overlay {
  position: absolute;
  inset: 0;
  background: rgba(13,27,42,.82);
  backdrop-filter: blur(4px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  z-index: 10;
  cursor: pointer;
  border-radius: inherit;
  transition: opacity .2s;
}
.res-member-lock-overlay:hover {
  background: rgba(13,27,42,.88);
}
.res-member-lock-overlay i {
  font-size: 1.8rem;
  color: var(--accent);
  opacity: .8;
}
.res-member-lock-overlay span {
  font-size: .8rem;
  color: rgba(255,255,255,.6);
  font-family: var(--ff-sans);
  text-align: center;
}
.res-member-lock-btn {
  background: var(--accent);
  color: var(--navy);
  border: none;
  padding: 8px 18px;
  border-radius: 20px;
  font-size: .78rem;
  font-weight: 700;
  font-family: var(--ff-sans);
  cursor: pointer;
  transition: var(--transition);
  box-shadow: 0 2px 12px rgba(201,168,76,.35);
}
.res-member-lock-btn:hover {
  background: var(--accent-lt);
  transform: scale(1.03);
}

/* 회원 카드 액션 — 잠금 시 */
.res-member-actions {
  transition: opacity .3s, pointer-events .3s;
}

/* ═══════════════════════════════════════════════════════════
   인라인 문서 뷰어 (.res-doc-viewer)
═══════════════════════════════════════════════════════════ */
.res-doc-viewer {
  background: rgba(13,27,42,.85);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 16px;
  overflow: hidden;
  margin-top: 4px;
  animation: slideDown .25s ease;
}
@keyframes slideDown {
  from { opacity: 0; transform: translateY(-10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* 문서 뷰어 콘텐츠 영역 */
.res-doc-content {
  padding: 28px 32px;
  max-height: 640px;
  overflow-y: auto;
  color: rgba(255,255,255,.8);
  font-family: var(--ff-sans);
  font-size: .88rem;
  line-height: 1.7;
  scrollbar-width: thin;
  scrollbar-color: rgba(201,168,76,.3) transparent;
}
.res-doc-content::-webkit-scrollbar { width: 5px; }
.res-doc-content::-webkit-scrollbar-thumb { background: rgba(201,168,76,.3); border-radius: 3px; }

.res-doc-content h2 {
  font-family: var(--ff-serif);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--white);
  margin: 0 0 6px;
  line-height: 1.25;
}
.res-doc-content h3 {
  font-size: .88rem;
  font-weight: 700;
  color: var(--accent);
  margin: 0 0 10px;
  display: flex;
  align-items: center;
  gap: 7px;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-family: var(--ff-sans);
}
.res-doc-content h3 i { font-size: .8rem; }
.rdc-lead {
  font-size: .84rem;
  color: rgba(255,255,255,.45);
  margin: 0 0 22px;
}
.res-doc-badge-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 16px;
}

/* 섹션 블록 */
.rdc-section {
  margin-bottom: 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.rdc-section:last-child { border-bottom: none; }

/* 2-3열 컬럼 */
.rdc-cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 22px;
}
@media (max-width: 600px) {
  .rdc-cols { grid-template-columns: 1fr; }
}

/* 목록 */
.rdc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.rdc-list li {
  font-size: .78rem;
  color: rgba(255,255,255,.55);
  font-family: 'Courier New', monospace;
  background: rgba(255,255,255,.03);
  padding: 3px 8px;
  border-radius: 5px;
  border-left: 2px solid rgba(201,168,76,.2);
}
.rdc-ordered {
  padding-left: 18px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.rdc-ordered li {
  font-size: .82rem;
  color: rgba(255,255,255,.65);
}

/* 태그 그리드 */
.rdc-tag-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.rdc-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .72rem;
  font-weight: 600;
  color: rgba(255,255,255,.6);
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  padding: 4px 10px;
  border-radius: 6px;
  font-family: var(--ff-sans);
}
.rdc-tag i { font-size: .65rem; color: var(--accent); }
.rdc-tag-red {
  color: #fca5a5;
  background: rgba(239,68,68,.08);
  border-color: rgba(239,68,68,.2);
}

/* 시트 그리드 */
.rdc-sheet-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
}
@media (max-width: 600px) {
  .rdc-sheet-grid { grid-template-columns: repeat(2, 1fr); }
}
.rdc-sheet-grid span {
  font-size: .68rem;
  color: rgba(255,255,255,.5);
  font-family: 'Courier New', monospace;
  background: rgba(255,255,255,.03);
  padding: 4px 6px;
  border-radius: 4px;
  text-align: center;
  border: 1px solid rgba(255,255,255,.06);
  line-height: 1.3;
}

/* 우선순위 그리드 */
.rdc-priority-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
}
.rdc-priority-item {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 8px;
  padding: 7px 10px;
  font-size: .78rem;
  color: rgba(255,255,255,.6);
  font-family: var(--ff-sans);
}
.rdc-p-num {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--navy);
  font-size: .68rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* 뱃지 */
.rdb-badge {
  display: inline-flex;
  align-items: center;
  font-size: .7rem;
  font-weight: 700;
  color: rgba(255,255,255,.55);
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  padding: 3px 8px;
  border-radius: 5px;
  font-family: var(--ff-sans);
  letter-spacing: .02em;
}
.rdb-badge.blue {
  color: #93c5fd;
  background: rgba(96,165,250,.1);
  border-color: rgba(96,165,250,.2);
}
.rdb-badge.green {
  color: #86efac;
  background: rgba(74,222,128,.1);
  border-color: rgba(74,222,128,.2);
}
.rdb-badge.amber {
  color: #fcd34d;
  background: rgba(252,211,77,.1);
  border-color: rgba(252,211,77,.2);
}

/* ═══════════════════════════════════════════════════════════
   Sprint #217 문서 뷰어 전용 컴포넌트 (doc-m4)
═══════════════════════════════════════════════════════════ */

/* Career Matching Framework 흐름 체인 */
.m4-flow-chain {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  padding: 12px 0;
}
.m4-flow-node {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 9px 18px;
  border-radius: 10px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.75);
  font-size: .82rem;
  font-family: var(--ff-sans);
  font-weight: 600;
  min-width: 200px;
}
.m4-flow-node i { font-size: .82rem; color: var(--accent); }
.m4-flow-node.accent {
  background: rgba(201,168,76,.12);
  border-color: rgba(201,168,76,.3);
  color: var(--accent-lt);
}
.m4-flow-node.green {
  background: rgba(74,222,128,.1);
  border-color: rgba(74,222,128,.25);
  color: #86efac;
}
.m4-flow-arrow {
  font-size: .85rem;
  color: rgba(255,255,255,.25);
  padding: 2px 0 2px 22px;
  line-height: 1;
}

/* 4개 신규 시트 카드 그리드 */
.m4-sheet-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
@media (max-width: 600px) {
  .m4-sheet-cards { grid-template-columns: 1fr; }
}
.m4-sheet-card {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding: 14px 16px;
}
.m4-sheet-title {
  font-size: .8rem;
  font-weight: 700;
  color: var(--accent);
  font-family: var(--ff-sans);
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 5px;
  letter-spacing: .03em;
}
.m4-sheet-desc {
  font-size: .73rem;
  color: rgba(255,255,255,.35);
  font-family: var(--ff-sans);
  margin: 0 0 10px;
}

/* 미니 테이블 */
.m4-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .73rem;
  font-family: var(--ff-sans);
}
.m4-table th {
  color: rgba(255,255,255,.35);
  font-weight: 600;
  text-align: left;
  padding: 4px 6px;
  border-bottom: 1px solid rgba(255,255,255,.07);
  letter-spacing: .02em;
}
.m4-table td {
  color: rgba(255,255,255,.6);
  padding: 5px 6px;
  border-bottom: 1px solid rgba(255,255,255,.04);
  vertical-align: middle;
}
.m4-table tr:last-child td { border-bottom: none; }

/* 점수/등급 배지 */
.m4-score-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  height: 20px;
  border-radius: 5px;
  font-size: .68rem;
  font-weight: 800;
  font-family: var(--ff-sans);
  padding: 0 6px;
}
.m4-score-badge.high { background: rgba(74,222,128,.15); color: #4ade80; border: 1px solid rgba(74,222,128,.25); }
.m4-score-badge.mid  { background: rgba(251,191,36,.12); color: #fbbf24; border: 1px solid rgba(251,191,36,.2); }
.m4-score-badge.low  { background: rgba(156,163,175,.1); color: #9ca3af; border: 1px solid rgba(156,163,175,.15); }

/* 가중치 그리드 */
.m4-weight-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
@media (max-width: 600px) {
  .m4-weight-grid { grid-template-columns: 1fr; }
}
.m4-weight-group {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px;
  padding: 12px 14px;
}
.m4-weight-title {
  font-size: .76rem;
  font-weight: 700;
  color: rgba(255,255,255,.5);
  font-family: var(--ff-sans);
  margin-bottom: 8px;
  letter-spacing: .03em;
  text-transform: uppercase;
}

/* 성숙도 바 */
.m4-maturity-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.m4-maturity-item {
  display: grid;
  grid-template-columns: 130px 1fr 42px;
  align-items: center;
  gap: 10px;
  font-family: var(--ff-sans);
}
.m4-mat-label {
  font-size: .77rem;
  color: rgba(255,255,255,.55);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.m4-mat-bar-wrap {
  height: 7px;
  background: rgba(255,255,255,.06);
  border-radius: 4px;
  overflow: hidden;
}
.m4-mat-bar {
  height: 100%;
  border-radius: 4px;
  transition: width 1s ease;
}
.m4-mat-pct {
  font-size: .72rem;
  font-weight: 700;
  color: rgba(255,255,255,.4);
  text-align: right;
}

/* ═══════════════════════════════════════════════════════════
   역량진단 엔진 (CCE — Career Competency Engine)
   Sprint #217 RC84
═══════════════════════════════════════════════════════════ */
.cce-wrap {
  margin-top: 36px;
  border-radius: var(--radius);
  border: 1px solid rgba(52,211,153,.2);
  background: linear-gradient(160deg, rgba(20,50,40,.5) 0%, rgba(13,27,42,.75) 100%);
  overflow: hidden;
}

/* 헤더 */
.cce-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 22px 28px 18px;
  border-bottom: 1px solid rgba(52,211,153,.15);
  background: linear-gradient(90deg, rgba(52,211,153,.1) 0%, transparent 60%);
}
.cce-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .71rem;
  font-weight: 700;
  color: #34d399;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-family: var(--ff-sans);
  margin-bottom: 4px;
}
.cce-title {
  font-family: var(--ff-serif);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--white);
  margin: 0 0 3px;
  line-height: 1.2;
}
.cce-title em { color: #34d399; font-style: normal; }
.cce-subtitle {
  font-size: .78rem;
  color: rgba(255,255,255,.45);
  font-family: var(--ff-sans);
  margin: 0;
}

/* 스텝 인디케이터 */
.cce-step-indicator {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .76rem;
  font-family: var(--ff-sans);
  flex-wrap: wrap;
}
.cce-ls {
  padding: 4px 12px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.3);
  transition: var(--transition);
}
.cce-ls.active {
  background: #34d399;
  color: #0d1b2a;
  border-color: #34d399;
  font-weight: 700;
}
.cce-ls.done {
  background: rgba(52,211,153,.15);
  color: #6ee7b7;
  border-color: rgba(52,211,153,.3);
}
.cce-ls-sep { color: rgba(255,255,255,.2); font-size: .8rem; }

/* 바디 */
.cce-body { padding: 24px 28px 28px; }
.cce-step-intro {
  font-size: .84rem;
  color: rgba(255,255,255,.55);
  font-family: var(--ff-sans);
  margin-bottom: 18px;
  padding: 10px 14px;
  background: rgba(52,211,153,.06);
  border-radius: 8px;
  border-left: 3px solid #34d399;
  line-height: 1.55;
}

/* 폼 그리드 */
.cce-form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-bottom: 18px;
}
.cce-col-2 { grid-column: span 2; }
.cce-field-group { display: flex; flex-direction: column; }
.cce-label {
  font-size: .74rem;
  font-weight: 600;
  color: rgba(255,255,255,.45);
  font-family: var(--ff-sans);
  margin-bottom: 6px;
  letter-spacing: .03em;
}
.cce-label i { margin-right: 5px; font-size: .68rem; }
.cce-req { color: #f87171; }
.cce-input {
  padding: 10px 13px;
  border-radius: 9px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.05);
  color: var(--white);
  font-size: .86rem;
  font-family: var(--ff-sans);
  outline: none;
  transition: border-color .2s, background .2s;
}
.cce-input::placeholder { color: rgba(255,255,255,.2); }
.cce-input:focus {
  border-color: #34d399;
  background: rgba(52,211,153,.06);
}
.cce-input option { background: #1a2d42; color: var(--white); }

/* 역량 진단 그리드 */
.cce-competency-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 18px;
}
@media (max-width: 600px) {
  .cce-competency-grid { grid-template-columns: 1fr; }
}
.cce-comp-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  transition: var(--transition);
}
.cce-comp-card.score-high { border-color: rgba(74,222,128,.3); background: rgba(74,222,128,.06); }
.cce-comp-card.score-mid  { border-color: rgba(251,191,36,.25); background: rgba(251,191,36,.05); }
.cce-comp-card.score-low  { border-color: rgba(248,113,113,.25); background: rgba(248,113,113,.05); }

.cce-comp-icon {
  font-size: 1.1rem;
  color: rgba(255,255,255,.35);
  flex-shrink: 0;
  width: 28px;
  text-align: center;
}
.cce-comp-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.cce-comp-label {
  font-size: .82rem;
  font-weight: 700;
  color: rgba(255,255,255,.75);
  font-family: var(--ff-sans);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cce-comp-jobs {
  font-size: .68rem;
  color: rgba(255,255,255,.3);
  font-family: var(--ff-sans);
}

/* 별점 */
.cce-rating {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
}
.cce-star-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 2px;
  color: rgba(255,255,255,.18);
  font-size: .82rem;
  transition: color .15s, transform .1s;
}
.cce-star-btn:hover,
.cce-star-btn.selected { color: #fbbf24; }
.cce-star-btn:hover { transform: scale(1.2); }
.cce-score-display {
  font-size: .7rem;
  font-weight: 700;
  color: rgba(255,255,255,.4);
  font-family: var(--ff-sans);
  min-width: 22px;
  text-align: right;
}

/* 에러 */
.cce-error {
  font-size: .77rem;
  color: #fca5a5;
  font-family: var(--ff-sans);
  margin: -4px 0 10px;
  min-height: 16px;
}

/* 액션 버튼 */
.cce-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.cce-next-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: 12px;
  border: none;
  background: linear-gradient(135deg, #34d399 0%, #059669 100%);
  color: #0d1b2a;
  font-size: .9rem;
  font-weight: 700;
  font-family: var(--ff-sans);
  cursor: pointer;
  transition: var(--transition);
  box-shadow: 0 4px 16px rgba(52,211,153,.3);
}
.cce-next-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 22px rgba(52,211,153,.4); }
.cce-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 18px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.55);
  font-size: .84rem;
  font-weight: 600;
  font-family: var(--ff-sans);
  cursor: pointer;
  transition: var(--transition);
}
.cce-back-btn:hover { background: rgba(255,255,255,.12); color: var(--white); }
.cce-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 18px;
  border-radius: 10px;
  border: 1px solid rgba(201,168,76,.25);
  background: rgba(201,168,76,.08);
  color: var(--accent);
  font-size: .84rem;
  font-weight: 600;
  font-family: var(--ff-sans);
  cursor: pointer;
  transition: var(--transition);
}
.cce-copy-btn:hover { background: rgba(201,168,76,.18); color: var(--accent-lt); }

/* ── 리포트 결과 영역 ── */
.cce-report-header {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(52,211,153,.15);
  border-radius: 14px;
  padding: 18px 20px;
  margin-bottom: 18px;
}
.cce-report-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.cce-report-name {
  font-size: .96rem;
  font-weight: 700;
  color: var(--white);
  font-family: var(--ff-sans);
  margin: 0 0 4px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.cce-report-name i { color: #34d399; }
.cce-report-meta {
  font-size: .78rem;
  color: rgba(255,255,255,.4);
  font-family: var(--ff-sans);
  margin: 0;
}
.cce-index-badge {
  border: 2px solid;
  border-radius: 14px;
  padding: 8px 16px;
  text-align: center;
  flex-shrink: 0;
}
.cce-index-num {
  font-size: 1.6rem;
  font-weight: 900;
  font-family: var(--ff-serif);
  line-height: 1;
}
.cce-index-label {
  font-size: .7rem;
  font-weight: 700;
  font-family: var(--ff-sans);
  margin-top: 3px;
}
.cce-index-bar-bg {
  height: 8px;
  background: rgba(255,255,255,.07);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 12px;
}
.cce-index-bar {
  height: 100%;
  border-radius: 4px;
  transition: width 1s ease;
}
.cce-info-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.cce-itag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .71rem;
  font-weight: 600;
  color: rgba(255,255,255,.5);
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.09);
  padding: 3px 9px;
  border-radius: 6px;
  font-family: var(--ff-sans);
}
.cce-itag i { font-size: .65rem; color: #34d399; }

/* 리포트 섹션 */
.cce-report-section {
  margin-bottom: 18px;
}
.cce-report-section-title {
  font-size: .82rem;
  font-weight: 700;
  color: #34d399;
  font-family: var(--ff-sans);
  margin: 0 0 10px;
  display: flex;
  align-items: center;
  gap: 7px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.cce-report-section-title i { font-size: .75rem; }

/* 추천 직무 리스트 */
.cce-job-list { display: flex; flex-direction: column; gap: 7px; }
.cce-job-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: rgba(52,211,153,.06);
  border: 1px solid rgba(52,211,153,.15);
  border-radius: 10px;
  font-family: var(--ff-sans);
}
.cce-job-rank {
  font-size: .7rem;
  font-weight: 800;
  color: #34d399;
  min-width: 28px;
}
.cce-job-name {
  font-size: .88rem;
  font-weight: 700;
  color: var(--white);
  flex: 1;
}
.cce-job-score {
  font-size: .75rem;
  color: rgba(255,255,255,.4);
  font-family: var(--ff-sans);
}
.cce-no-result {
  font-size: .82rem;
  color: rgba(255,255,255,.4);
  font-family: var(--ff-sans);
  padding: 12px 14px;
  background: rgba(255,255,255,.03);
  border-radius: 8px;
}

/* 역량 바 그리드 */
.cce-comp-result-grid { display: flex; flex-direction: column; gap: 8px; }
.cce-comp-result-row {
  display: grid;
  grid-template-columns: 100px 1fr 36px;
  align-items: center;
  gap: 10px;
  font-family: var(--ff-sans);
}
.cce-comp-result-label { font-size: .76rem; color: rgba(255,255,255,.55); white-space: nowrap; }
.cce-comp-result-bar-bg {
  height: 7px;
  background: rgba(255,255,255,.07);
  border-radius: 4px;
  overflow: hidden;
}
.cce-comp-result-bar { height: 100%; border-radius: 4px; transition: width .8s ease; }
.cce-comp-result-score { font-size: .72rem; font-weight: 700; text-align: right; }

/* 교육 추천 그리드 */
.cce-train-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
@media (max-width: 600px) {
  .cce-train-grid { grid-template-columns: 1fr; }
  .cce-form-grid  { grid-template-columns: 1fr; }
  .cce-col-2      { grid-column: span 1; }
  .cce-header     { flex-direction: column; align-items: flex-start; }
}
.cce-train-card {
  background: rgba(251,191,36,.06);
  border: 1px solid rgba(251,191,36,.18);
  border-radius: 10px;
  padding: 12px 14px;
}
.cce-train-top { margin-bottom: 6px; }
.cce-train-weak {
  font-size: .72rem;
  color: #fbbf24;
  font-family: var(--ff-sans);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 5px;
}
.cce-train-weak i { font-size: .65rem; }
.cce-train-name {
  font-size: .83rem;
  font-weight: 700;
  color: var(--white);
  font-family: var(--ff-sans);
  margin-bottom: 4px;
}
.cce-train-provider {
  font-size: .71rem;
  color: rgba(255,255,255,.35);
  font-family: var(--ff-sans);
  display: flex;
  align-items: center;
  gap: 5px;
}
.cce-train-provider i { font-size: .65rem; }

/* 상담사 메모 박스 */
.cce-memo-box {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.cce-memo-box p {
  font-size: .81rem;
  color: rgba(255,255,255,.55);
  font-family: var(--ff-sans);
  margin: 0;
  line-height: 1.55;
}
.cce-memo-box strong { color: rgba(255,255,255,.8); }

/* ═══════════════════════════════════════════════════════════
   상담 리포트 대시보드 (crp — Counseling Report Panel)
═══════════════════════════════════════════════════════════ */
.crp-wrap {
  margin-top: 48px;
  border-top: 2px solid rgba(201,168,76,.25);
  padding-top: 32px;
}

/* 헤더 */
.crp-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.crp-header-left { flex: 1; }
.crp-header-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.crp-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .7rem;
  font-weight: 700;
  color: var(--accent);
  background: rgba(201,168,76,.1);
  border: 1px solid rgba(201,168,76,.25);
  padding: 4px 10px;
  border-radius: 20px;
  font-family: var(--ff-sans);
  letter-spacing: .04em;
  margin-bottom: 8px;
}
.crp-title {
  font-family: var(--ff-serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--white);
  margin: 0 0 6px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.crp-title i { color: var(--accent); font-size: 1.1rem; }
.crp-sub {
  font-size: .8rem;
  color: rgba(255,255,255,.4);
  font-family: var(--ff-sans);
  margin: 0;
}

/* 헤더 버튼 */
.crp-setup-btn, .crp-refresh-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 16px;
  border-radius: 10px;
  border: none;
  font-size: .78rem;
  font-weight: 600;
  font-family: var(--ff-sans);
  cursor: pointer;
  transition: var(--transition);
}
.crp-setup-btn {
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.65);
  border: 1px solid rgba(255,255,255,.1);
}
.crp-setup-btn:hover {
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.9);
}
.crp-refresh-btn {
  background: rgba(201,168,76,.12);
  color: var(--accent);
  border: 1px solid rgba(201,168,76,.25);
}
.crp-refresh-btn:hover {
  background: rgba(201,168,76,.22);
}
.crp-refresh-btn.spinning i { animation: spin .8s linear infinite; }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* API 설정 영역 */
.crp-api-setup {
  background: rgba(201,168,76,.05);
  border: 1.5px dashed rgba(201,168,76,.3);
  border-radius: 16px;
  padding: 28px 32px;
  text-align: center;
  margin-bottom: 20px;
}
.crp-setup-icon {
  font-size: 2.4rem;
  color: var(--accent);
  margin-bottom: 14px;
  opacity: .7;
}
.crp-api-setup h4 {
  font-family: var(--ff-sans);
  font-size: 1rem;
  font-weight: 700;
  color: var(--white);
  margin: 0 0 8px;
}
.crp-api-setup p {
  font-size: .82rem;
  color: rgba(255,255,255,.45);
  font-family: var(--ff-sans);
  margin: 0 0 18px;
  line-height: 1.55;
}
.crp-api-input-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 640px;
  margin: 0 auto 12px;
}
.crp-api-input {
  flex: 1;
  min-width: 260px;
  padding: 11px 16px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--white);
  font-size: .85rem;
  font-family: var(--ff-sans);
  outline: none;
  transition: border-color .2s;
}
.crp-api-input:focus { border-color: var(--accent); }
.crp-api-input::placeholder { color: rgba(255,255,255,.22); }
.crp-api-save-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 11px 20px;
  border-radius: 10px;
  border: none;
  background: linear-gradient(135deg, var(--accent), var(--accent-dk));
  color: var(--navy);
  font-size: .85rem;
  font-weight: 700;
  font-family: var(--ff-sans);
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}
.crp-api-save-btn:hover { background: linear-gradient(135deg, var(--accent-lt), var(--accent)); }
.crp-setup-hint {
  font-size: .75rem;
  color: rgba(255,255,255,.3);
  font-family: var(--ff-sans);
  margin: 0;
}
.crp-guide-link {
  background: none;
  border: none;
  color: var(--accent);
  font-size: .75rem;
  font-family: var(--ff-sans);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  padding: 0;
}

/* 통계 바 */
.crp-stats-bar {
  display: flex;
  gap: 0;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 16px;
}
.crp-stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 14px 12px;
  border-right: 1px solid rgba(255,255,255,.05);
  gap: 4px;
}
.crp-stat:last-child { border-right: none; }
.crp-stat-num {
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--white);
  font-family: var(--ff-sans);
  line-height: 1;
}
.crp-stat-label {
  font-size: .68rem;
  color: rgba(255,255,255,.35);
  font-family: var(--ff-sans);
  text-align: center;
  letter-spacing: .02em;
}
.crp-stat-updated .crp-stat-num { color: var(--accent); }

/* 툴바 */
.crp-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.crp-search-wrap {
  position: relative;
  flex: 1;
  min-width: 200px;
}
.crp-search-icon {
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(255,255,255,.3);
  font-size: .82rem;
  pointer-events: none;
}
.crp-search {
  width: 100%;
  padding: 9px 36px 9px 36px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.05);
  color: var(--white);
  font-size: .84rem;
  font-family: var(--ff-sans);
  outline: none;
  transition: border-color .2s;
  box-sizing: border-box;
}
.crp-search:focus { border-color: var(--accent); }
.crp-search::placeholder { color: rgba(255,255,255,.22); }
.crp-search-clear {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: rgba(255,255,255,.3);
  cursor: pointer;
  font-size: .8rem;
  padding: 4px;
  transition: color .2s;
}
.crp-search-clear:hover { color: rgba(255,255,255,.7); }
.crp-filter-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.crp-filter-sel {
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.7);
  font-size: .8rem;
  font-family: var(--ff-sans);
  cursor: pointer;
  outline: none;
}
.crp-count-badge {
  font-size: .75rem;
  font-weight: 700;
  color: var(--accent);
  background: rgba(201,168,76,.1);
  border: 1px solid rgba(201,168,76,.2);
  padding: 4px 10px;
  border-radius: 20px;
  font-family: var(--ff-sans);
  white-space: nowrap;
}

/* 로딩 / 에러 / 빈 상태 */
.crp-loading, .crp-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 48px 24px;
  color: rgba(255,255,255,.4);
  font-family: var(--ff-sans);
  font-size: .9rem;
}
.crp-loading i { font-size: 1.8rem; color: var(--accent); }
.crp-empty i { font-size: 2.4rem; }
.crp-empty p { margin: 0; }
.crp-empty-sub { font-size: .78rem; color: rgba(255,255,255,.25) !important; }
.crp-error {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  background: rgba(239,68,68,.08);
  border: 1px solid rgba(239,68,68,.2);
  border-radius: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.crp-error i { font-size: 1.4rem; color: #f87171; flex-shrink: 0; }
.crp-error strong { color: #fca5a5; font-family: var(--ff-sans); font-size: .88rem; }
.crp-error p { color: rgba(255,255,255,.45); font-size: .78rem; font-family: var(--ff-sans); margin: 4px 0 0; }
.crp-retry-btn {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 8px;
  border: 1px solid rgba(239,68,68,.3);
  background: rgba(239,68,68,.1);
  color: #fca5a5;
  font-size: .78rem;
  font-weight: 700;
  font-family: var(--ff-sans);
  cursor: pointer;
  transition: background .2s;
}
.crp-retry-btn:hover { background: rgba(239,68,68,.2); }

/* 테이블 */
.crp-table-wrap {
  overflow-x: auto;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.02);
}
.crp-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--ff-sans);
  font-size: .82rem;
}
.crp-table thead tr {
  background: rgba(201,168,76,.08);
  border-bottom: 1px solid rgba(201,168,76,.2);
}
.crp-table th {
  padding: 12px 14px;
  text-align: left;
  font-size: .71rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space: nowrap;
}
.crp-table td {
  padding: 11px 14px;
  border-bottom: 1px solid rgba(255,255,255,.04);
  color: rgba(255,255,255,.75);
  vertical-align: middle;
}
.crp-table tbody tr {
  transition: background .15s;
  cursor: pointer;
}
.crp-table tbody tr:hover { background: rgba(201,168,76,.06); }
.crp-table tbody tr:last-child td { border-bottom: none; }
.crp-table tbody tr.crp-row-active { background: rgba(201,168,76,.1); }

/* 상태 배지 */
.crp-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border-radius: 20px;
  font-size: .68rem;
  font-weight: 700;
  white-space: nowrap;
}
.crp-status-badge.consulting  { background:rgba(96,165,250,.15); color:#93c5fd; border:1px solid rgba(96,165,250,.25); }
.crp-status-badge.searching   { background:rgba(251,191,36,.12); color:#fbbf24; border:1px solid rgba(251,191,36,.2); }
.crp-status-badge.interview   { background:rgba(167,139,250,.15); color:#c4b5fd; border:1px solid rgba(167,139,250,.25); }
.crp-status-badge.employed    { background:rgba(74,222,128,.12); color:#4ade80; border:1px solid rgba(74,222,128,.2); }
.crp-status-badge.hold        { background:rgba(156,163,175,.1); color:#9ca3af; border:1px solid rgba(156,163,175,.15); }
.crp-status-badge.default     { background:rgba(255,255,255,.06); color:rgba(255,255,255,.5); border:1px solid rgba(255,255,255,.1); }

/* 점수 바 */
.crp-score-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
}
.crp-score-bar {
  width: 60px;
  height: 6px;
  background: rgba(255,255,255,.07);
  border-radius: 3px;
  overflow: hidden;
  flex-shrink: 0;
}
.crp-score-fill {
  height: 100%;
  border-radius: 3px;
  transition: width .6s ease;
}
.crp-score-fill.high { background: #4ade80; }
.crp-score-fill.mid  { background: #fbbf24; }
.crp-score-fill.low  { background: #f87171; }
.crp-score-num {
  font-size: .75rem;
  font-weight: 700;
  color: rgba(255,255,255,.6);
}

/* 상세보기 버튼 */
.crp-detail-btn {
  background: none;
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.5);
  border-radius: 6px;
  padding: 4px 10px;
  font-size: .72rem;
  font-family: var(--ff-sans);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: var(--transition);
}
.crp-detail-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* 상세 패널 */
.crp-detail-panel {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 14px;
  padding: 20px 24px;
  margin-top: 12px;
  animation: slideDown .2s ease;
}
.crp-detail-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  border-bottom: 1px solid rgba(255,255,255,.07);
  padding-bottom: 12px;
}
.crp-detail-header h4 {
  font-family: var(--ff-sans);
  font-size: 1rem;
  font-weight: 700;
  color: var(--white);
  margin: 0;
}
.crp-detail-close {
  background: none;
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.4);
  border-radius: 6px;
  width: 28px;
  height: 28px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .8rem;
  transition: var(--transition);
}
.crp-detail-close:hover { color: #fca5a5; border-color: rgba(239,68,68,.3); }
.crp-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.crp-detail-item {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 10px;
  padding: 12px 14px;
}
.crp-detail-item.full { grid-column: 1 / -1; }
.crp-detail-label {
  font-size: .68rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: .05em;
  text-transform: uppercase;
  font-family: var(--ff-sans);
  margin-bottom: 5px;
}
.crp-detail-value {
  font-size: .82rem;
  color: rgba(255,255,255,.75);
  font-family: var(--ff-sans);
  line-height: 1.6;
  white-space: pre-wrap;
}

/* 설정 모달 */
.crp-setup-modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.7);
  backdrop-filter: blur(6px);
  z-index: 9600;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.crp-setup-inner {
  background: linear-gradient(160deg, #1a2d42 0%, #0d1b2a 100%);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 20px;
  width: 100%;
  max-width: 680px;
  max-height: 85vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 24px 64px rgba(0,0,0,.6);
}
.crp-setup-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px 16px;
  border-bottom: 1px solid rgba(255,255,255,.07);
  flex-shrink: 0;
}
.crp-setup-header h4 {
  font-family: var(--ff-sans);
  font-size: 1rem;
  font-weight: 700;
  color: var(--white);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.crp-setup-header h4 i { color: var(--accent); }
.crp-setup-header button {
  background: none;
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.4);
  border-radius: 6px;
  width: 30px;
  height: 30px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  transition: var(--transition);
}
.crp-setup-header button:hover { color: #fca5a5; border-color: rgba(239,68,68,.3); }
.crp-setup-body {
  overflow-y: auto;
  padding: 20px 24px 24px;
  flex: 1;
  scrollbar-width: thin;
  scrollbar-color: rgba(201,168,76,.3) transparent;
}
.crp-step {
  display: flex;
  gap: 16px;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.crp-step:last-child { border-bottom: none; margin-bottom: 0; }
.crp-step-num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--navy);
  font-size: .8rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}
.crp-step > div:last-child {
  flex: 1;
}
.crp-step strong {
  display: block;
  font-size: .88rem;
  font-weight: 700;
  color: var(--white);
  font-family: var(--ff-sans);
  margin-bottom: 6px;
}
.crp-step p {
  font-size: .78rem;
  color: rgba(255,255,255,.5);
  font-family: var(--ff-sans);
  margin: 0 0 10px;
  line-height: 1.6;
}
.crp-step code {
  background: rgba(201,168,76,.12);
  color: var(--accent-lt);
  padding: 1px 6px;
  border-radius: 4px;
  font-size: .77rem;
  font-family: 'Courier New', monospace;
}
.crp-field-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}
.crp-field-list span {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.6);
  padding: 3px 9px;
  border-radius: 5px;
  font-size: .72rem;
  font-family: var(--ff-sans);
}
.crp-code-block {
  position: relative;
  background: #0d1117;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  overflow: hidden;
  max-height: 180px;
}
.crp-code-block pre {
  margin: 0;
  padding: 14px 16px;
  font-size: .7rem;
  color: #d1d5db;
  font-family: 'Courier New', monospace;
  overflow-y: auto;
  max-height: 160px;
  white-space: pre;
  line-height: 1.5;
}
.crp-copy-code {
  position: absolute;
  top: 8px;
  right: 8px;
  background: rgba(201,168,76,.15);
  border: 1px solid rgba(201,168,76,.3);
  color: var(--accent);
  font-size: .7rem;
  font-weight: 700;
  font-family: var(--ff-sans);
  padding: 4px 10px;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 5px;
  transition: background .2s;
  z-index: 2;
}
.crp-copy-code:hover { background: rgba(201,168,76,.28); }

/* 반응형 */
@media (max-width: 640px) {
  .crp-stats-bar { flex-wrap: wrap; }
  .crp-stat { min-width: 40%; flex: none; border-right: none; border-bottom: 1px solid rgba(255,255,255,.05); }
  .crp-detail-grid { grid-template-columns: 1fr; }
  .crp-table th, .crp-table td { padding: 9px 10px; font-size: .75rem; }
  .crp-th-consultant, .crp-table td:nth-child(6) { display: none; }
}

/* ═══════════════════════════════════════════════════════════
   관리자 FAB 버튼 (우하단 고정 — admin-fab)
═══════════════════════════════════════════════════════════ */
.admin-fab {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 9999;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 14px 18px;
  border-radius: 50px;
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dk) 100%);
  color: var(--navy);
  border: none;
  cursor: pointer;
  box-shadow: 0 6px 24px rgba(201,168,76,.45), 0 2px 8px rgba(0,0,0,.3);
  transition: transform .2s cubic-bezier(.4,0,.2,1),
              box-shadow .2s cubic-bezier(.4,0,.2,1),
              background .25s ease;
  font-family: var(--ff-sans);
  text-decoration: none;
  outline: none;
}
.admin-fab:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 32px rgba(201,168,76,.55), 0 4px 12px rgba(0,0,0,.35);
}
.admin-fab:active {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(201,168,76,.4);
}
.admin-fab i {
  font-size: 1.2rem;
  line-height: 1;
}
.admin-fab-label {
  font-size: .63rem;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1;
  white-space: nowrap;
}

/* 잠금 해제(open) 상태 — 초록 */
.admin-fab--open {
  background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
  box-shadow: 0 6px 24px rgba(34,197,94,.4), 0 2px 8px rgba(0,0,0,.25);
  color: #fff;
}
.admin-fab--open:hover {
  box-shadow: 0 10px 32px rgba(34,197,94,.5), 0 4px 12px rgba(0,0,0,.3);
}

/* 모바일 소형화 */
@media (max-width: 480px) {
  .admin-fab {
    bottom: 18px;
    right: 16px;
    padding: 12px 14px;
    border-radius: 40px;
  }
  .admin-fab i { font-size: 1rem; }
  .admin-fab-label { font-size: .58rem; }
}

/* ═══════════════════════════════════════════════════════════
   footer-archive-btn — footer-social a와 동일한 형태의 자료실 버튼
═══════════════════════════════════════════════════════════ */
.footer-archive-btn {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.12);
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.55);
  font-size: .9rem;
  transition: var(--transition);
  padding: 0;
  flex-shrink: 0;
}
.footer-archive-btn:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--navy);
}
.footer-archive-btn.open {
  background: rgba(34,197,94,.15);
  border-color: rgba(34,197,94,.3);
  color: #4ade80;
}

/* ═══════════════════════════════════════════════════════════
   MUP — 구직자 공유 프로필 배너
═══════════════════════════════════════════════════════════ */
.mup-wrap {
  background: linear-gradient(135deg, rgba(14,28,54,.95) 0%, rgba(10,20,40,.98) 100%);
  border: 1px solid rgba(201,168,76,.3);
  border-radius: 16px;
  padding: 0;
  margin-bottom: 24px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,.3);
}
.mup-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid rgba(201,168,76,.15);
  cursor: pointer;
}
.mup-header-left {
  display: flex;
  align-items: center;
  gap: 12px;
}
.mup-icon {
  font-size: 1.4rem;
  color: var(--accent);
  flex-shrink: 0;
}
.mup-title {
  font-size: .95rem;
  color: #fff;
  display: block;
}
.mup-sub {
  font-size: .75rem;
  color: rgba(255,255,255,.5);
  display: block;
  margin-top: 2px;
  line-height: 1.4;
}
.mup-toggle-btn {
  background: transparent;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px;
  width: 32px;
  height: 32px;
  color: rgba(255,255,255,.5);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
  flex-shrink: 0;
}
.mup-toggle-btn:hover { background: rgba(255,255,255,.08); }
.mup-body {
  padding: 20px;
}
.mup-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.mup-field { display: flex; flex-direction: column; gap: 6px; }
.mup-field-wide { grid-column: 1 / -1; }
.mup-label {
  font-size: .8rem;
  color: rgba(255,255,255,.6);
  display: flex;
  align-items: center;
  gap: 6px;
}
.mup-label i { color: var(--accent); font-size: .75rem; }
.mup-req { color: #ef4444; }
.mup-label-sub { color: rgba(255,255,255,.35); font-size: .72rem; margin-left: 4px; }
.mup-input {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px;
  padding: 9px 12px;
  color: #fff;
  font-size: .85rem;
  transition: var(--transition);
  font-family: inherit;
}
.mup-input::placeholder { color: rgba(255,255,255,.25); }
.mup-input:focus {
  outline: none;
  border-color: var(--accent);
  background: rgba(255,255,255,.09);
  box-shadow: 0 0 0 3px rgba(201,168,76,.12);
}
.mup-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.mup-sync-status {
  font-size: .78rem;
  color: rgba(255,255,255,.4);
  display: flex;
  align-items: center;
  gap: 6px;
}
.mup-sync-status.synced { color: #4ade80; }
.mup-sync-status i { font-size: .72rem; }
.mup-ext-btns {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.mup-ext-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 8px 16px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  color: rgba(255,255,255,.7);
  text-decoration: none;
  font-size: .78rem;
  transition: var(--transition);
  cursor: pointer;
  min-width: 90px;
  text-align: center;
}
.mup-ext-btn i { font-size: 1.1rem; color: var(--accent); }
.mup-ext-btn small { font-size: .68rem; color: rgba(255,255,255,.35); }
.mup-ext-btn:hover {
  background: rgba(201,168,76,.12);
  border-color: rgba(201,168,76,.3);
  color: #fff;
}
.mup-ext-btn.has-profile {
  border-color: rgba(34,197,94,.3);
  background: rgba(34,197,94,.08);
}
/* 구직준비도 버튼 */
.mup-ext-btn--survey {
  border-color: rgba(16,185,129,.35);
  background: rgba(16,185,129,.08);
}
.mup-ext-btn--survey i { color: #34d399; }
.mup-ext-btn--survey:hover {
  background: rgba(16,185,129,.18);
  border-color: rgba(16,185,129,.5);
  color: #fff;
}

.mup-filled-badge {
  margin-top: 14px;
  padding: 10px 14px;
  background: rgba(34,197,94,.1);
  border: 1px solid rgba(34,197,94,.25);
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .82rem;
  color: #4ade80;
}
.mup-filled-badge i { font-size: 1rem; }
.mup-filled-badge span { flex: 1; }
.mup-edit-btn {
  background: transparent;
  border: 1px solid rgba(74,222,128,.3);
  border-radius: 6px;
  color: #4ade80;
  font-size: .75rem;
  padding: 4px 10px;
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}
.mup-edit-btn:hover { background: rgba(34,197,94,.15); }

@media (max-width: 600px) {
  .mup-grid { grid-template-columns: 1fr; }
  .mup-field-wide { grid-column: unset; }
  .mup-sub { display: none; }
  .mup-actions { flex-direction: column; align-items: flex-start; }
  .mup-ext-btns { width: 100%; }
  .mup-ext-btn { flex: 1; min-width: 0; }
}

/* ═══════════════════════════════════════════════════════════
   관리자 모달 추가 컴포넌트
═══════════════════════════════════════════════════════════ */

/* 모달 내 폴더 아이콘 (pane 상단) */
.auth-admin-icon {
  font-size: 2.8rem;
  color: var(--accent);
  text-align: center;
  margin-bottom: 14px;
  line-height: 1;
  animation: popIn .35s cubic-bezier(.175,.885,.32,1.275);
}

/* 비밀번호 틀렸을 때 입력창 흔들림 */
@keyframes authShake {
  0%, 100% { transform: translateX(0); }
  20%, 60%  { transform: translateX(-8px); }
  40%, 80%  { transform: translateX(8px); }
}
.auth-shake {
  animation: authShake .48s ease;
}

/* "자료실 잠금" 보조 버튼 */
.auth-lock-btn {
  background: rgba(255,255,255,.08) !important;
  color: rgba(255,255,255,.65) !important;
  box-shadow: none !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  margin-top: 10px;
}
.auth-lock-btn:hover {
  background: rgba(255,255,255,.14) !important;
  color: rgba(255,255,255,.85) !important;
  transform: none !important;
  box-shadow: none !important;
}

/* 관리자 안내 배너 */
.res-admin-notice {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 18px;
  background: rgba(201,168,76,.08);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 12px;
  margin-bottom: 20px;
  font-family: var(--ff-sans);
  font-size: .82rem;
  color: rgba(255,255,255,.6);
}
.res-admin-notice i { color: var(--accent); font-size: .9rem; flex-shrink: 0; }

/* ═══════════════════════════════════════════════════════════
   파일 뷰어 모달 (fvm — Google Viewer iframe)
═══════════════════════════════════════════════════════════ */
.fvm-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.72);
  backdrop-filter: blur(8px);
  z-index: 9500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}
.fvm-overlay.open {
  opacity: 1;
  pointer-events: auto;
}
.fvm-modal {
  background: linear-gradient(160deg, #1a2d42 0%, #0d1b2a 100%);
  border: 1px solid rgba(201,168,76,.25);
  border-radius: 20px;
  width: 100%;
  max-width: 960px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 32px 80px rgba(0,0,0,.65);
  overflow: hidden;
  transform: translateY(24px) scale(.97);
  transition: transform .28s cubic-bezier(.4,0,.2,1);
}
.fvm-overlay.open .fvm-modal {
  transform: translateY(0) scale(1);
}

/* 헤더 */
.fvm-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 24px 16px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  flex-shrink: 0;
  gap: 12px;
}
.fvm-title {
  font-family: var(--ff-sans);
  font-size: .95rem;
  font-weight: 700;
  color: var(--white);
  display: flex;
  align-items: center;
  gap: 9px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: 1;
}
.fvm-title i { color: var(--accent); font-size: 1rem; flex-shrink: 0; }
.fvm-header-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.fvm-download-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 8px;
  background: rgba(201,168,76,.15);
  border: 1px solid rgba(201,168,76,.3);
  color: var(--accent);
  font-size: .78rem;
  font-weight: 700;
  font-family: var(--ff-sans);
  text-decoration: none;
  cursor: pointer;
  transition: background .2s, color .2s;
}
.fvm-download-btn:hover {
  background: rgba(201,168,76,.28);
  color: var(--accent-lt);
}
.fvm-close {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.5);
  font-size: .9rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s, color .2s;
}
.fvm-close:hover {
  background: rgba(239,68,68,.15);
  color: #fca5a5;
  border-color: rgba(239,68,68,.2);
}

/* iframe 영역 */
.fvm-body {
  position: relative;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.fvm-loading {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  color: rgba(255,255,255,.65);
  font-family: var(--ff-sans);
  font-size: .9rem;
  background: rgba(13,27,42,.6);
  z-index: 2;
}
.fvm-loading i { font-size: 2.2rem; color: var(--accent); }
.fvm-loading-sub {
  font-size: .75rem;
  color: rgba(255,255,255,.3);
  margin: 0;
  text-align: center;
  max-width: 280px;
  line-height: 1.5;
}
.fvm-iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: none;
  background: #fff;
  min-height: 560px;
}

/* 푸터 */
.fvm-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 20px;
  border-top: 1px solid rgba(255,255,255,.06);
  flex-shrink: 0;
  flex-wrap: wrap;
}
.fvm-footer-note {
  font-size: .73rem;
  color: rgba(255,255,255,.3);
  font-family: var(--ff-sans);
  display: flex;
  align-items: center;
  gap: 6px;
}
.fvm-footer-note i { color: rgba(255,255,255,.2); }
.fvm-retry-btn {
  display: none;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 8px;
  border: 1px solid rgba(251,191,36,.3);
  background: rgba(251,191,36,.1);
  color: #fbbf24;
  font-size: .76rem;
  font-weight: 700;
  font-family: var(--ff-sans);
  cursor: pointer;
  transition: background .2s;
}
.fvm-retry-btn:hover { background: rgba(251,191,36,.2); }

/* 반응형 */
@media (max-width: 640px) {
  .fvm-modal { border-radius: 14px; max-height: 95vh; }
  .fvm-header { padding: 14px 16px 12px; }
  .fvm-title { font-size: .82rem; }
  .fvm-download-btn span { display: none; }
  .fvm-download-btn { padding: 7px 10px; }
  .fvm-iframe { min-height: 400px; }
  .fvm-footer { padding: 9px 14px; }
}

/* ═══════════════════════════════════════════════════════════
   ISA — 산업안전기사 취업처 DB 탭
═══════════════════════════════════════════════════════════ */

/* ── 상단 히어로 배너 ── */
.isa-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  background: linear-gradient(135deg, rgba(14,28,54,.97) 0%, rgba(30,58,95,.95) 100%);
  border: 1px solid rgba(201,168,76,.25);
  border-radius: 16px;
  padding: 28px 28px 24px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.isa-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(201,168,76,.15);
  border: 1px solid rgba(201,168,76,.3);
  border-radius: 20px;
  padding: 4px 12px;
  font-size: .75rem;
  color: var(--accent);
  font-weight: 700;
  margin-bottom: 10px;
}
.isa-hero-title {
  font-size: 1.4rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.35;
  margin: 0 0 8px;
  font-family: var(--ff-serif);
}
.isa-hero-title em { color: var(--accent); font-style: normal; }
.isa-hero-desc {
  font-size: .82rem;
  color: rgba(255,255,255,.55);
  line-height: 1.6;
  margin: 0;
}
.isa-hero-stats {
  display: flex;
  gap: 20px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.isa-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  padding: 12px 18px;
  min-width: 72px;
}
.isa-stat-num {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--accent);
  line-height: 1;
}
.isa-stat-label {
  font-size: .7rem;
  color: rgba(255,255,255,.45);
  text-align: center;
}

/* ── 전략 팁 3줄 ── */
.isa-tip-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}
.isa-tip {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding: 14px;
}
.isa-tip i {
  font-size: 1.1rem;
  color: var(--accent);
  flex-shrink: 0;
  margin-top: 2px;
}
.isa-tip strong { display: block; font-size: .82rem; color: #fff; margin-bottom: 3px; }
.isa-tip span   { font-size: .74rem; color: rgba(255,255,255,.45); line-height: 1.5; }

/* ── 검색 + 필터 바 ── */
.isa-filter-bar {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 24px;
}
.isa-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.isa-search-icon {
  position: absolute;
  left: 14px;
  color: rgba(255,255,255,.3);
  font-size: .85rem;
  pointer-events: none;
}
.isa-search-input {
  width: 100%;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  padding: 11px 42px 11px 40px;
  color: #fff;
  font-size: .88rem;
  font-family: var(--ff-sans);
  transition: var(--transition);
}
.isa-search-input::placeholder { color: rgba(255,255,255,.3); }
.isa-search-input:focus {
  outline: none;
  border-color: var(--accent);
  background: rgba(255,255,255,.08);
  box-shadow: 0 0 0 3px rgba(201,168,76,.12);
}
.isa-search-clear {
  position: absolute;
  right: 12px;
  background: none;
  border: none;
  color: rgba(255,255,255,.3);
  cursor: pointer;
  font-size: .8rem;
  display: none;
  padding: 4px;
}
.isa-search-clear.visible { display: block; }
.isa-filter-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.isa-ftag {
  padding: 5px 12px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.12);
  background: transparent;
  color: rgba(255,255,255,.55);
  font-size: .76rem;
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--ff-sans);
  white-space: nowrap;
}
.isa-ftag:hover { background: rgba(255,255,255,.06); color: #fff; }
.isa-ftag.active {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--navy);
  font-weight: 700;
}
.isa-count-label {
  font-size: .78rem;
  color: rgba(255,255,255,.35);
  padding-left: 4px;
}

/* ── 섹션 헤더 ── */
.isa-section-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 28px 0 16px;
  padding: 16px 20px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-left: 3px solid var(--accent);
  border-radius: 0 12px 12px 0;
}
.isa-section-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(201,168,76,.12);
  border: 1px solid rgba(201,168,76,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.isa-section-icon i { color: var(--accent); font-size: 1rem; }
.isa-section-head > div { flex: 1; }
.isa-section-title {
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 3px;
}
.isa-section-desc {
  font-size: .78rem;
  color: rgba(255,255,255,.45);
  margin: 0;
}
.isa-section-badge {
  padding: 4px 10px;
  border-radius: 16px;
  font-size: .7rem;
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
}
.isa-section-badge.new {
  background: rgba(34,197,94,.15);
  border: 1px solid rgba(34,197,94,.3);
  color: #4ade80;
}

/* ── 카드 그리드 ── */
.isa-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 14px;
  margin-bottom: 8px;
}
.isa-card {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  padding: 18px;
  transition: var(--transition);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.isa-card:hover {
  background: rgba(255,255,255,.06);
  border-color: rgba(201,168,76,.25);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.25);
}
.isa-card.hidden { display: none; }

/* ── 현재 모집 중 카드 (Live) ── */
.isa-card-live {
  border-color: rgba(239,68,68,.22);
  background: rgba(239,68,68,.04);
}
.isa-card-live:hover {
  border-color: rgba(239,68,68,.4);
  background: rgba(239,68,68,.08);
}

/* ── 마감일 배지 ── */
.isa-deadline-badge {
  font-size: .65rem;
  font-weight: 700;
  padding: 2px 9px;
  border-radius: 10px;
  white-space: nowrap;
  letter-spacing: .01em;
  margin-left: auto;
}
.isa-deadline-badge.d6 {
  background: rgba(239,68,68,.25);
  color: #f87171;
  border: 1px solid rgba(239,68,68,.4);
  animation: isa-blink 1.4s ease-in-out infinite;
}
.isa-deadline-badge.d30 {
  background: rgba(251,191,36,.15);
  color: #fbbf24;
  border: 1px solid rgba(251,191,36,.3);
}
@keyframes isa-blink {
  0%,100% { opacity: 1; }
  50%      { opacity: .55; }
}

/* ── 카드 메타 정보 (고용형태·연봉) ── */
.isa-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 2px 0;
}
.isa-card-meta span {
  font-size: .72rem;
  color: rgba(255,255,255,.55);
  display: flex;
  align-items: center;
  gap: 4px;
}
.isa-card-meta i { color: var(--accent); font-size: .68rem; }

/* ── 현재모집 필터 태그 강조 ── */
.isa-ftag-live {
  border-color: rgba(239,68,68,.35) !important;
  color: #f87171 !important;
}
.isa-ftag-live.active,
.isa-ftag-live:hover {
  background: rgba(239,68,68,.18) !important;
  border-color: rgba(239,68,68,.5) !important;
  color: #f87171 !important;
}
.isa-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.isa-type-badge {
  padding: 3px 10px;
  border-radius: 12px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .02em;
}
.isa-type-badge.consult { background: rgba(139,92,246,.2);  color: #a78bfa; border: 1px solid rgba(139,92,246,.3); }
.isa-type-badge.const   { background: rgba(249,115,22,.15); color: #fb923c; border: 1px solid rgba(249,115,22,.3); }
.isa-type-badge.mfg     { background: rgba(59,130,246,.15); color: #60a5fa; border: 1px solid rgba(59,130,246,.3); }
.isa-type-badge.fm      { background: rgba(20,184,166,.15); color: #2dd4bf; border: 1px solid rgba(20,184,166,.3); }
.isa-type-badge.pub     { background: rgba(34,197,94,.15);  color: #4ade80; border: 1px solid rgba(34,197,94,.3); }
.isa-region-tag {
  font-size: .7rem;
  color: rgba(255,255,255,.4);
  background: rgba(255,255,255,.05);
  padding: 2px 8px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.08);
}
.isa-card-name {
  font-size: .92rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
  line-height: 1.3;
}
.isa-card-desc {
  font-size: .78rem;
  color: rgba(255,255,255,.5);
  line-height: 1.6;
  margin: 0;
  flex: 1;
}
.isa-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.isa-tag {
  font-size: .68rem;
  color: rgba(255,255,255,.45);
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
  padding: 2px 7px;
}
.isa-tag.hot {
  color: #fcd34d;
  background: rgba(201,168,76,.18);
  border-color: rgba(201,168,76,.4);
  font-weight: 700;
}

/* ── 신규 카드 특이 요소 ── */
.isa-card-live-flag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .7rem;
  font-weight: 700;
  color: #fbbf24;
  background: rgba(251,191,36,.12);
  border: 1px solid rgba(251,191,36,.3);
  border-radius: 6px;
  padding: 2px 8px;
  margin-bottom: 4px;
}
.isa-card-updated {
  font-size: .65rem;
  color: rgba(255,255,255,.25);
  margin-top: 8px;
  text-align: right;
}
.isa-card-links {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: auto;
}
.isa-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 13px;
  border-radius: 8px;
  font-size: .74rem;
  font-weight: 700;
  text-decoration: none;
  transition: var(--transition);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.65);
  background: rgba(255,255,255,.04);
  white-space: nowrap;
}
.isa-link-btn:hover {
  background: rgba(255,255,255,.1);
  color: #fff;
  border-color: rgba(255,255,255,.2);
}
.isa-link-btn.primary {
  background: rgba(201,168,76,.15);
  border-color: rgba(201,168,76,.3);
  color: var(--accent);
}
.isa-link-btn.primary:hover {
  background: var(--accent);
  color: var(--navy);
}

/* ── 맞춤형 플랫폼 섹션 ── */
.isa-platform-section {
  margin: 32px 0 20px;
  padding: 24px;
  background: rgba(14,28,54,.8);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 16px;
}
.isa-platform-title {
  font-size: .95rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.isa-platform-title i { color: var(--accent); }
.isa-platform-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 10px;
}
.isa-platform-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  text-decoration: none;
  transition: var(--transition);
}
.isa-platform-card:hover {
  background: rgba(201,168,76,.1);
  border-color: rgba(201,168,76,.25);
  transform: translateY(-1px);
}
.isa-platform-logo {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: linear-gradient(135deg, #1a3a6e, #0d1b2a);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.isa-platform-logo i { color: var(--accent); font-size: .9rem; }
.isa-platform-info { flex: 1; }
.isa-platform-info strong { display: block; font-size: .82rem; color: #fff; font-weight: 700; margin-bottom: 2px; }
.isa-platform-info span   { font-size: .72rem; color: rgba(255,255,255,.4); line-height: 1.4; }
.isa-platform-arrow { color: rgba(255,255,255,.2); font-size: .8rem; flex-shrink: 0; }
.isa-platform-card:hover .isa-platform-arrow { color: var(--accent); }

/* ── 하단 주석 ── */
.isa-footnote {
  font-size: .74rem;
  color: rgba(255,255,255,.3);
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.isa-footnote i { color: rgba(255,255,255,.2); }

/* ── 검색 결과 없음 ── */
.isa-empty {
  text-align: center;
  padding: 40px 20px;
  color: rgba(255,255,255,.3);
  font-size: .85rem;
  display: none;
}
.isa-empty i { display: block; font-size: 2rem; margin-bottom: 10px; }

/* ── 필터·검색으로 숨긴 카드 ── */
.isa-card.isa-hidden { display: none !important; }

/* ════════════════════════════════════════════════
   사람인 실시간 채용공고 패널 (saramin-live)
════════════════════════════════════════════════ */
.saramin-live-wrap {
  background: linear-gradient(135deg, rgba(230,68,51,.06), rgba(230,68,51,.02));
  border: 1px solid rgba(230,68,51,.2);
  border-radius: 18px;
  padding: 22px 24px;
  margin-bottom: 28px;
}

/* ── 헤더 ── */
.saramin-live-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
  flex-wrap: wrap;
  gap: 10px;
}
.saramin-live-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .92rem;
  color: #fff;
  font-weight: 700;
}
.saramin-live-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #e64433;
  box-shadow: 0 0 0 3px rgba(230,68,51,.25);
  animation: sl-pulse 1.6s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes sl-pulse {
  0%,100% { box-shadow: 0 0 0 3px rgba(230,68,51,.25); }
  50%      { box-shadow: 0 0 0 6px rgba(230,68,51,.0); }
}
.saramin-live-badge {
  font-size: .68rem;
  font-weight: 600;
  background: rgba(230,68,51,.15);
  color: #f87171;
  border: 1px solid rgba(230,68,51,.3);
  border-radius: 10px;
  padding: 2px 9px;
}
.saramin-live-controls {
  display: flex;
  align-items: center;
  gap: 10px;
}
.saramin-live-updated {
  font-size: .7rem;
  color: rgba(255,255,255,.35);
}
.saramin-refresh-btn {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  color: rgba(255,255,255,.55);
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--transition);
  font-size: .8rem;
}
.saramin-refresh-btn:hover {
  background: rgba(230,68,51,.15);
  border-color: rgba(230,68,51,.35);
  color: #f87171;
}

/* ── 로딩 ── */
.saramin-loading {
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255,255,255,.4);
  font-size: .82rem;
  padding: 20px 0;
}
.saramin-loading i { color: #e64433; font-size: 1rem; }

/* ── 오류 ── */
.saramin-error {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 16px 0;
}
.saramin-error i { color: #fbbf24; }
#saramin-error-msg {
  font-size: .8rem;
  color: rgba(255,255,255,.45);
  line-height: 1.5;
}
.saramin-fallback-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(230,68,51,.15);
  border: 1px solid rgba(230,68,51,.3);
  color: #f87171;
  font-size: .78rem;
  font-weight: 600;
  padding: 7px 14px;
  border-radius: 8px;
  text-decoration: none;
  transition: var(--transition);
}
.saramin-fallback-btn:hover {
  background: rgba(230,68,51,.28);
  border-color: rgba(230,68,51,.5);
}

/* ── 공고 카드 그리드 ── */
.saramin-job-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}
.sl-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding: 14px 16px;
  text-decoration: none;
  transition: var(--transition);
  cursor: pointer;
}
.sl-card:hover {
  background: rgba(230,68,51,.08);
  border-color: rgba(230,68,51,.3);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.25);
}

/* ── 카드 내부 ── */
.sl-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.sl-co-name {
  font-size: .72rem;
  color: rgba(255,255,255,.5);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 140px;
}
.sl-job-title {
  font-size: .88rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sl-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin: 2px 0;
}
.sl-meta span {
  font-size: .7rem;
  color: rgba(255,255,255,.45);
  display: flex;
  align-items: center;
  gap: 3px;
}
.sl-meta i { color: var(--accent); font-size: .65rem; }
.sl-exp-date {
  font-size: .68rem;
  color: rgba(255,255,255,.3);
  display: flex;
  align-items: center;
  gap: 4px;
}
.sl-cta {
  margin-top: auto;
  font-size: .72rem;
  font-weight: 700;
  color: #e64433;
  display: flex;
  align-items: center;
  gap: 5px;
}

/* ── D-day 배지 ── */
.sl-dday {
  font-size: .62rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 8px;
  white-space: nowrap;
  flex-shrink: 0;
}
.sl-dday-urgent { background: rgba(239,68,68,.25);  color: #f87171; border: 1px solid rgba(239,68,68,.4); animation: sl-dday-blink 1.2s ease-in-out infinite; }
.sl-dday-today  { background: rgba(239,68,68,.3);   color: #fca5a5; border: 1px solid rgba(239,68,68,.5); animation: sl-dday-blink .8s ease-in-out infinite; }
.sl-dday-soon   { background: rgba(251,191,36,.15); color: #fbbf24; border: 1px solid rgba(251,191,36,.3); }
.sl-dday-normal { background: rgba(255,255,255,.07);color: rgba(255,255,255,.45); border: 1px solid rgba(255,255,255,.1); }
.sl-dday-open   { background: rgba(34,197,94,.12);  color: #4ade80; border: 1px solid rgba(34,197,94,.25); }
.sl-dday-end    { background: rgba(255,255,255,.05);color: rgba(255,255,255,.25); border: 1px solid rgba(255,255,255,.08); }
@keyframes sl-dday-blink {
  0%,100% { opacity: 1; }
  50%      { opacity: .5; }
}

/* ── 푸터 (더보기 / 전체보기) ── */
.saramin-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.saramin-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.6);
  font-size: .78rem;
  font-weight: 600;
  padding: 7px 16px;
  border-radius: 8px;
  cursor: pointer;
  transition: var(--transition);
}
.saramin-more-btn:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.2);
  color: #fff;
}
.saramin-all-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(230,68,51,.12);
  border: 1px solid rgba(230,68,51,.25);
  color: #f87171;
  font-size: .78rem;
  font-weight: 600;
  padding: 7px 16px;
  border-radius: 8px;
  text-decoration: none;
  transition: var(--transition);
}
.saramin-all-btn:hover {
  background: rgba(230,68,51,.25);
  border-color: rgba(230,68,51,.45);
}

/* ── 반응형 ── */
@media (max-width: 600px) {
  .saramin-live-wrap { padding: 16px; }
  .saramin-job-list  { grid-template-columns: 1fr; }
  .saramin-footer    { flex-direction: column; align-items: stretch; }
  .saramin-more-btn,
  .saramin-all-btn   { justify-content: center; }
}

/* ════════════════════════════════════════════════
   고용24 실시간 채용공고 패널 (w24-live)
════════════════════════════════════════════════ */
.w24-live-wrap {
  background: linear-gradient(135deg, rgba(0,120,212,.06), rgba(0,120,212,.02));
  border: 1px solid rgba(0,120,212,.2);
  border-radius: 18px;
  padding: 22px 24px;
  margin-bottom: 28px;
}

/* ── 헤더 ── */
.w24-live-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
  flex-wrap: wrap;
  gap: 10px;
}
.w24-live-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .92rem;
  color: #fff;
  font-weight: 700;
}
.w24-live-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #0078d4;
  box-shadow: 0 0 0 3px rgba(0,120,212,.25);
  animation: w24-pulse 1.6s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes w24-pulse {
  0%,100% { box-shadow: 0 0 0 3px rgba(0,120,212,.25); }
  50%      { box-shadow: 0 0 0 7px rgba(0,120,212,.0); }
}
.w24-live-badge {
  font-size: .68rem;
  font-weight: 600;
  background: rgba(0,120,212,.15);
  color: #60a5fa;
  border: 1px solid rgba(0,120,212,.3);
  border-radius: 10px;
  padding: 2px 9px;
}
.w24-live-controls {
  display: flex;
  align-items: center;
  gap: 10px;
}
.w24-live-updated {
  font-size: .7rem;
  color: rgba(255,255,255,.35);
}
.w24-refresh-btn {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  color: rgba(255,255,255,.55);
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--transition);
  font-size: .8rem;
}
.w24-refresh-btn:hover {
  background: rgba(0,120,212,.18);
  border-color: rgba(0,120,212,.4);
  color: #60a5fa;
}

/* ── 로딩 ── */
.w24-loading {
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255,255,255,.4);
  font-size: .82rem;
  padding: 20px 0;
}
.w24-loading i { color: #0078d4; font-size: 1rem; }

/* ── 오류 ── */
.w24-error {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 16px 0;
}
.w24-error > i { color: #fbbf24; }
#w24-error-msg {
  font-size: .8rem;
  color: rgba(255,255,255,.45);
  line-height: 1.5;
}
.w24-fallback-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(0,120,212,.15);
  border: 1px solid rgba(0,120,212,.3);
  color: #60a5fa;
  font-size: .78rem;
  font-weight: 600;
  padding: 7px 14px;
  border-radius: 8px;
  text-decoration: none;
  transition: var(--transition);
}
.w24-fallback-btn:hover {
  background: rgba(0,120,212,.3);
  border-color: rgba(0,120,212,.5);
}

/* ── 공고 카드 그리드 ── */
.w24-job-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}
.w24-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding: 14px 16px;
  text-decoration: none;
  transition: var(--transition);
  cursor: pointer;
}
.w24-card:hover {
  background: rgba(0,120,212,.08);
  border-color: rgba(0,120,212,.3);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.25);
}
.w24-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.w24-co-name {
  font-size: .72rem;
  color: rgba(255,255,255,.5);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 145px;
}
.w24-job-title {
  font-size: .88rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.w24-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
}
.w24-meta span {
  font-size: .7rem;
  color: rgba(255,255,255,.45);
  display: flex;
  align-items: center;
  gap: 3px;
}
.w24-meta i { color: var(--accent); font-size: .65rem; }
.w24-exp-date {
  font-size: .68rem;
  color: rgba(255,255,255,.3);
  display: flex;
  align-items: center;
  gap: 4px;
}
.w24-cta {
  margin-top: auto;
  font-size: .72rem;
  font-weight: 700;
  color: #0078d4;
  display: flex;
  align-items: center;
  gap: 5px;
}

/* ── D-day 배지 ── */
.w24-dday {
  font-size: .62rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 8px;
  white-space: nowrap;
  flex-shrink: 0;
}
.w24-dday-urgent { background: rgba(239,68,68,.25);   color: #f87171; border: 1px solid rgba(239,68,68,.4);  animation: w24-blink 1.2s ease-in-out infinite; }
.w24-dday-today  { background: rgba(239,68,68,.3);    color: #fca5a5; border: 1px solid rgba(239,68,68,.5);  animation: w24-blink .8s  ease-in-out infinite; }
.w24-dday-soon   { background: rgba(251,191,36,.15);  color: #fbbf24; border: 1px solid rgba(251,191,36,.3); }
.w24-dday-normal { background: rgba(255,255,255,.07); color: rgba(255,255,255,.45); border: 1px solid rgba(255,255,255,.1); }
.w24-dday-open   { background: rgba(34,197,94,.12);   color: #4ade80; border: 1px solid rgba(34,197,94,.25); }
.w24-dday-end    { background: rgba(255,255,255,.05); color: rgba(255,255,255,.25); border: 1px solid rgba(255,255,255,.08); }
@keyframes w24-blink {
  0%,100% { opacity: 1; }
  50%      { opacity: .5; }
}

/* ── 푸터 ── */
.w24-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.w24-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.6);
  font-size: .78rem;
  font-weight: 600;
  padding: 7px 16px;
  border-radius: 8px;
  cursor: pointer;
  transition: var(--transition);
}
.w24-more-btn:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.2);
  color: #fff;
}
.w24-all-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(0,120,212,.12);
  border: 1px solid rgba(0,120,212,.25);
  color: #60a5fa;
  font-size: .78rem;
  font-weight: 600;
  padding: 7px 16px;
  border-radius: 8px;
  text-decoration: none;
  transition: var(--transition);
}
.w24-all-btn:hover {
  background: rgba(0,120,212,.25);
  border-color: rgba(0,120,212,.45);
}

/* ── 반응형 ── */
@media (max-width: 600px) {
  .w24-live-wrap { padding: 16px; }
  .w24-job-list  { grid-template-columns: 1fr; }
  .w24-footer    { flex-direction: column; align-items: stretch; }
  .w24-more-btn,
  .w24-all-btn   { justify-content: center; }
}

/* ════════════════════════════════════════════════
   인크루트 RSS 실시간 채용공고 패널 (inc-live)
════════════════════════════════════════════════ */
.inc-live-wrap {
  background: linear-gradient(135deg, rgba(30,100,200,.06), rgba(30,100,200,.02));
  border: 1px solid rgba(30,100,200,.2);
  border-radius: 18px;
  padding: 22px 24px;
  margin-bottom: 28px;
}
.inc-live-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
  flex-wrap: wrap;
  gap: 10px;
}
.inc-live-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .92rem;
  color: #fff;
  font-weight: 700;
}
.inc-live-dot {
  width: 9px; height: 9px;
  border-radius: 50%;
  background: #1e64c8;
  box-shadow: 0 0 0 3px rgba(30,100,200,.25);
  animation: inc-pulse 1.8s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes inc-pulse {
  0%,100% { box-shadow: 0 0 0 3px rgba(30,100,200,.25); }
  50%      { box-shadow: 0 0 0 7px rgba(30,100,200,.0); }
}
.inc-live-badge {
  font-size: .68rem; font-weight: 600;
  background: rgba(30,100,200,.15);
  color: #93c5fd;
  border: 1px solid rgba(30,100,200,.3);
  border-radius: 10px;
  padding: 2px 9px;
}
.inc-live-controls { display: flex; align-items: center; gap: 10px; }
.inc-live-updated  { font-size: .7rem; color: rgba(255,255,255,.35); }
.inc-refresh-btn {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  color: rgba(255,255,255,.55);
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: var(--transition); font-size: .8rem;
}
.inc-refresh-btn:hover {
  background: rgba(30,100,200,.18);
  border-color: rgba(30,100,200,.4);
  color: #93c5fd;
}
.inc-loading {
  display: flex; align-items: center; gap: 10px;
  color: rgba(255,255,255,.4); font-size: .82rem; padding: 20px 0;
}
.inc-loading i { color: #1e64c8; font-size: 1rem; }
.inc-error {
  display: flex; flex-direction: column;
  align-items: flex-start; gap: 10px; padding: 16px 0;
}
.inc-error > i { color: #fbbf24; }
#inc-error-msg  { font-size: .8rem; color: rgba(255,255,255,.45); line-height: 1.5; }
.inc-fallback-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(30,100,200,.15);
  border: 1px solid rgba(30,100,200,.3);
  color: #93c5fd; font-size: .78rem; font-weight: 600;
  padding: 7px 14px; border-radius: 8px;
  text-decoration: none; transition: var(--transition);
}
.inc-fallback-btn:hover {
  background: rgba(30,100,200,.3); border-color: rgba(30,100,200,.5);
}
.inc-job-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}
.inc-card {
  display: flex; flex-direction: column; gap: 8px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px; padding: 14px 16px;
  text-decoration: none; transition: var(--transition); cursor: pointer;
}
.inc-card:hover {
  background: rgba(30,100,200,.08);
  border-color: rgba(30,100,200,.3);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.25);
}
.inc-card-top {
  display: flex; align-items: center;
  justify-content: space-between; gap: 8px;
}
.inc-co-name {
  font-size: .72rem; color: rgba(255,255,255,.5);
  white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis; max-width: 145px;
}
.inc-job-title {
  font-size: .88rem; font-weight: 700; color: #fff; margin: 0;
  line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; overflow: hidden;
}
.inc-meta { display: flex; flex-wrap: wrap; gap: 6px 10px; }
.inc-meta span {
  font-size: .7rem; color: rgba(255,255,255,.45);
  display: flex; align-items: center; gap: 3px;
}
.inc-meta i { color: var(--accent); font-size: .65rem; }
.inc-exp-date {
  font-size: .68rem; color: rgba(255,255,255,.3);
  display: flex; align-items: center; gap: 4px;
}
.inc-cta {
  margin-top: auto; font-size: .72rem; font-weight: 700;
  color: #1e64c8; display: flex; align-items: center; gap: 5px;
}
/* D-day 배지 */
.inc-dday {
  font-size: .62rem; font-weight: 700;
  padding: 2px 7px; border-radius: 8px;
  white-space: nowrap; flex-shrink: 0;
}
.inc-dday-urgent { background:rgba(239,68,68,.25);  color:#f87171; border:1px solid rgba(239,68,68,.4); animation:inc-blink 1.2s ease-in-out infinite; }
.inc-dday-today  { background:rgba(239,68,68,.3);   color:#fca5a5; border:1px solid rgba(239,68,68,.5); animation:inc-blink .8s  ease-in-out infinite; }
.inc-dday-soon   { background:rgba(251,191,36,.15); color:#fbbf24; border:1px solid rgba(251,191,36,.3); }
.inc-dday-normal { background:rgba(255,255,255,.07);color:rgba(255,255,255,.45); border:1px solid rgba(255,255,255,.1); }
.inc-dday-open   { background:rgba(34,197,94,.12);  color:#4ade80; border:1px solid rgba(34,197,94,.25); }
.inc-dday-end    { background:rgba(255,255,255,.05);color:rgba(255,255,255,.25); border:1px solid rgba(255,255,255,.08); }
@keyframes inc-blink { 0%,100%{opacity:1} 50%{opacity:.5} }

/* 푸터 */
.inc-footer {
  display: flex; align-items: center;
  justify-content: space-between; flex-wrap: wrap;
  gap: 10px; margin-top: 16px;
  padding-top: 14px; border-top: 1px solid rgba(255,255,255,.06);
}
.inc-more-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.6); font-size: .78rem; font-weight: 600;
  padding: 7px 16px; border-radius: 8px;
  cursor: pointer; transition: var(--transition);
}
.inc-more-btn:hover { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.2); color:#fff; }
.inc-all-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(30,100,200,.12);
  border: 1px solid rgba(30,100,200,.25);
  color: #93c5fd; font-size: .78rem; font-weight: 600;
  padding: 7px 16px; border-radius: 8px;
  text-decoration: none; transition: var(--transition);
}
.inc-all-btn:hover { background:rgba(30,100,200,.25); border-color:rgba(30,100,200,.45); }
@media (max-width: 600px) {
  .inc-live-wrap { padding: 16px; }
  .inc-job-list  { grid-template-columns: 1fr; }
  .inc-footer    { flex-direction: column; align-items: stretch; }
  .inc-more-btn,
  .inc-all-btn   { justify-content: center; }
}

/* ── 반응형 ── */
@media (max-width: 900px) {
  .isa-tip-row { grid-template-columns: 1fr; }
  .isa-hero { flex-direction: column; }
  .isa-hero-stats { width: 100%; justify-content: flex-start; }
}
@media (max-width: 600px) {
  .isa-hero { padding: 18px; }
  .isa-hero-title { font-size: 1.15rem; }
  .isa-card-grid { grid-template-columns: 1fr; }
  .isa-platform-grid { grid-template-columns: 1fr; }
  .isa-section-desc { display: none; }
}

/* ══════════════════════════════════════════════════════════
   인크루트 뉴스 속보 RSS 패널
══════════════════════════════════════════════════════════ */
.inc-news-wrap {
  background: linear-gradient(135deg, rgba(15,23,42,.95) 0%, rgba(20,30,60,.9) 100%);
  border: 1px solid rgba(99,102,241,.3);
  border-radius: 16px;
  padding: 22px 24px;
  margin-bottom: 24px;
}

/* 헤더 */
.inc-news-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 16px; gap: 12px; flex-wrap: wrap;
}
.inc-news-title {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.inc-news-dot {
  width: 9px; height: 9px; border-radius: 50%;
  background: #818cf8;
  box-shadow: 0 0 0 3px rgba(129,140,248,.25);
  animation: inc-pulse 2s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes inc-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(129,140,248,.25); }
  50%       { box-shadow: 0 0 0 6px rgba(129,140,248,.1); }
}
.inc-news-title strong {
  color: #e2e8f0; font-size: .95rem; font-weight: 700;
}
.inc-news-badge {
  background: rgba(99,102,241,.15);
  border: 1px solid rgba(99,102,241,.35);
  color: #a5b4fc; font-size: .72rem; font-weight: 600;
  padding: 3px 10px; border-radius: 20px;
}
.inc-news-controls {
  display: flex; align-items: center; gap: 10px;
}
.inc-news-updated {
  color: rgba(255,255,255,.35); font-size: .72rem;
}
.inc-news-refresh-btn {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.55);
  width: 30px; height: 30px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: var(--transition); font-size: .8rem;
}
.inc-news-refresh-btn:hover {
  background: rgba(99,102,241,.2);
  border-color: rgba(99,102,241,.4); color: #a5b4fc;
}

/* 로딩 / 오류 */
.inc-news-loading, .inc-news-error {
  display: flex; align-items: center; gap: 10px;
  color: rgba(255,255,255,.45); font-size: .88rem;
  padding: 20px 0;
}
.inc-news-error { color: #f87171; }
.inc-news-fallback-btn {
  display: inline-flex; align-items: center; gap: 5px;
  background: rgba(239,68,68,.12); border: 1px solid rgba(239,68,68,.3);
  color: #fca5a5; font-size: .78rem; font-weight: 600;
  padding: 6px 14px; border-radius: 8px;
  text-decoration: none; transition: var(--transition);
}
.inc-news-fallback-btn:hover { background: rgba(239,68,68,.25); }

/* 뉴스 목록 (세로 flex) */
.inc-news-list {
  flex-direction: column; gap: 10px;
  display: none; /* JS로 제어 */
}

/* 뉴스 카드 */
.inc-news-card {
  display: block; text-decoration: none;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding: 14px 16px;
  transition: var(--transition);
  cursor: pointer;
}
.inc-news-card:hover {
  background: rgba(99,102,241,.1);
  border-color: rgba(99,102,241,.35);
  transform: translateX(3px);
}
.inc-news-card-top {
  display: flex; align-items: center; gap: 8px; margin-bottom: 7px; flex-wrap: wrap;
}
.inc-news-cat {
  font-size: .69rem; font-weight: 700;
  padding: 2px 8px; border-radius: 10px;
  border: 1px solid transparent;
  flex-shrink: 0;
}
.inc-news-date {
  color: rgba(255,255,255,.3); font-size: .72rem; margin-left: auto;
  white-space: nowrap;
}
.inc-news-card-title {
  color: #e2e8f0; font-size: .88rem; font-weight: 600;
  line-height: 1.45; margin: 0 0 6px; word-break: keep-all;
}
.inc-news-card-desc {
  color: rgba(255,255,255,.4); font-size: .78rem; line-height: 1.5;
  margin: 0 0 8px; word-break: keep-all;
}
.inc-news-cta {
  display: flex; align-items: center; gap: 5px;
  color: #818cf8; font-size: .75rem; font-weight: 600;
}

/* 푸터 */
.inc-news-footer {
  display: flex; align-items: center; gap: 10px;
  margin-top: 16px; flex-wrap: wrap;
}
.inc-news-more-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.6); font-size: .78rem; font-weight: 600;
  padding: 7px 16px; border-radius: 8px;
  cursor: pointer; transition: var(--transition);
}
.inc-news-more-btn:hover { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.22); color:#fff; }
.inc-news-all-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(99,102,241,.12);
  border: 1px solid rgba(99,102,241,.25);
  color: #a5b4fc; font-size: .78rem; font-weight: 600;
  padding: 7px 16px; border-radius: 8px;
  text-decoration: none; transition: var(--transition);
}
.inc-news-all-btn:hover { background:rgba(99,102,241,.25); border-color:rgba(99,102,241,.45); }

@media (max-width: 600px) {
  .inc-news-wrap  { padding: 16px; }
  .inc-news-footer { flex-direction: column; align-items: stretch; }
  .inc-news-more-btn,
  .inc-news-all-btn { justify-content: center; }
}

/* ══════════════════════════════════════════════════════════
   공통 툴 모달 (나침반 · AI상담)
══════════════════════════════════════════════════════════ */
.tool-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(8,15,28,.82);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 9050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  overflow-y: auto;
}
.tool-modal {
  background: linear-gradient(160deg, #1a2d42 0%, #0d1b2a 100%);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 22px;
  width: 100%;
  max-width: 520px;
  box-shadow: 0 28px 90px rgba(0,0,0,.6);
  overflow: hidden;
  position: relative;
}

/* ── 헤더 ── */
.tool-modal-header {
  padding: 24px 24px 20px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.tool-modal-header--compass {
  background: linear-gradient(135deg, rgba(30,58,95,.9) 0%, rgba(13,27,42,.9) 100%);
  border-bottom: 1px solid rgba(99,155,255,.2);
}
.tool-modal-header--ai {
  background: linear-gradient(135deg, rgba(88,28,135,.75) 0%, rgba(13,27,42,.9) 100%);
  border-bottom: 1px solid rgba(167,139,250,.2);
}
.tool-modal-title-wrap {
  display: flex;
  align-items: center;
  gap: 14px;
}
.tool-modal-icon-wrap {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  flex-shrink: 0;
}
.tool-modal-icon-wrap--compass {
  background: linear-gradient(135deg, #1e5799, #63b3ed);
  box-shadow: 0 6px 20px rgba(99,179,237,.35);
  color: #fff;
}
.tool-modal-icon-wrap--ai {
  background: linear-gradient(135deg, #6d28d9, #a78bfa);
  box-shadow: 0 6px 20px rgba(167,139,250,.35);
  color: #fff;
}
.tool-modal-title {
  font-family: var(--ff-sans);
  font-size: 1.06rem;
  font-weight: 700;
  color: var(--white);
  margin: 0 0 4px;
}
.tool-modal-sub {
  font-family: var(--ff-sans);
  font-size: .78rem;
  color: rgba(255,255,255,.5);
  margin: 0;
}
.tool-modal-close {
  background: none;
  border: none;
  color: rgba(255,255,255,.4);
  font-size: .95rem;
  cursor: pointer;
  padding: 6px 8px;
  border-radius: 8px;
  transition: var(--transition);
  flex-shrink: 0;
}
.tool-modal-close:hover {
  color: var(--white);
  background: rgba(255,255,255,.1);
}

/* ── 본문 ── */
.tool-modal-body {
  padding: 22px 24px 26px;
}

/* 배지 */
.tool-intro-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}
.tool-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  border-radius: 20px;
  font-family: var(--ff-sans);
  font-size: .75rem;
  font-weight: 700;
}
.tool-badge--blue   { background: rgba(99,155,255,.14); color: #7eb8ff; border: 1px solid rgba(99,155,255,.25); }
.tool-badge--gold   { background: rgba(201,168,76,.14);  color: var(--accent); border: 1px solid rgba(201,168,76,.25); }
.tool-badge--green  { background: rgba(74,222,128,.12);  color: #4ade80; border: 1px solid rgba(74,222,128,.2); }
.tool-badge--purple { background: rgba(167,139,250,.14); color: #c4b5fd; border: 1px solid rgba(167,139,250,.25); }

/* 설명 카드 */
.tool-desc-card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 14px;
  padding: 18px 20px;
  margin-bottom: 16px;
}
.tool-desc-lead {
  font-family: var(--ff-sans);
  font-size: .88rem;
  color: rgba(255,255,255,.8);
  line-height: 1.65;
  margin: 0 0 14px;
}
.tool-desc-lead strong { color: var(--white); }
.tool-feature-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.tool-feature-list li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-family: var(--ff-sans);
  font-size: .84rem;
  color: rgba(255,255,255,.72);
  line-height: 1.5;
}
.tool-feature-list li i {
  color: #4ade80;
  font-size: .78rem;
  margin-top: 3px;
  flex-shrink: 0;
}

/* 프로필 연동 안내 */
.tool-profile-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(201,168,76,.1);
  border: 1px solid rgba(201,168,76,.25);
  border-radius: 10px;
  padding: 11px 15px;
  margin-bottom: 20px;
  font-family: var(--ff-sans);
  font-size: .82rem;
  color: var(--accent);
}

/* 2단계 프로세스 */
.tool-process-steps {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 18px;
  padding: 16px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
}
.tool-process-step {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 120px;
}
.tool-process-num {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-sans);
  font-size: .82rem;
  font-weight: 800;
  background: rgba(167,139,250,.2);
  color: #c4b5fd;
  border: 1px solid rgba(167,139,250,.3);
  flex-shrink: 0;
}
.tool-process-num--gold {
  background: rgba(201,168,76,.2);
  color: var(--accent);
  border-color: rgba(201,168,76,.35);
}
.tool-process-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tool-process-text strong {
  font-family: var(--ff-sans);
  font-size: .82rem;
  font-weight: 700;
  color: var(--white);
  display: block;
}
.tool-process-text span {
  font-family: var(--ff-sans);
  font-size: .74rem;
  color: rgba(255,255,255,.45);
  display: block;
  line-height: 1.4;
}
.tool-process-arrow {
  color: rgba(255,255,255,.25);
  font-size: .8rem;
  flex-shrink: 0;
}

/* CTA 버튼 */
.tool-cta-wrap {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 18px;
}
.tool-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 14px 24px;
  border-radius: 12px;
  font-family: var(--ff-sans);
  font-size: .9rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: var(--transition);
}
.tool-cta-btn--primary {
  background: linear-gradient(135deg, #1e5799, #63b3ed);
  color: #fff;
  box-shadow: 0 6px 20px rgba(99,179,237,.4);
}
.tool-cta-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(99,179,237,.5);
}
.tool-cta-btn--ai {
  background: linear-gradient(135deg, #6d28d9, #a78bfa);
  color: #fff;
  box-shadow: 0 6px 20px rgba(167,139,250,.4);
}
.tool-cta-btn--ai:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(167,139,250,.5);
}
.tool-cta-btn--ghost {
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.5);
  border: 1px solid rgba(255,255,255,.1);
  font-size: .84rem;
}
.tool-cta-btn--ghost:hover {
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.8);
}
.tool-cta-ext {
  font-size: .72rem !important;
  opacity: .7;
}

/* 하단 노트 */
.tool-footer-note {
  font-family: var(--ff-sans);
  font-size: .78rem;
  color: rgba(255,255,255,.35);
  text-align: center;
  margin: 0;
  line-height: 1.6;
}
.tool-footer-note i { margin-right: 4px; }
.tool-note-link {
  color: var(--accent);
  text-decoration: none;
}
.tool-note-link:hover { text-decoration: underline; }

/* button.res-admin-btn 대응 */
button.res-admin-btn {
  cursor: pointer;
  font: inherit;
  text-align: left;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(201,168,76,.3);
}

/* 반응형 */
@media (max-width: 480px) {
  .tool-modal { border-radius: 16px; }
  .tool-modal-body { padding: 16px; }
  .tool-modal-header { padding: 16px; }
  .tool-process-steps { flex-direction: column; align-items: flex-start; }
  .tool-process-arrow { transform: rotate(90deg); }
}

/* ══════════════════════════════════════════════════════════
   구직준비도 설문 모달
══════════════════════════════════════════════════════════ */
.survey-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(10,18,32,.78);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: 9100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  overflow-y: auto;
}
.survey-modal {
  background: linear-gradient(160deg, #1a2d42 0%, #0d1b2a 100%);
  border: 1px solid rgba(201,168,76,.3);
  border-radius: 20px;
  width: 100%;
  max-width: 580px;
  box-shadow: 0 24px 80px rgba(0,0,0,.55);
  overflow: hidden;
  position: relative;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
}

/* 헤더 */
.survey-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 22px 24px 18px;
  background: rgba(201,168,76,.08);
  border-bottom: 1px solid rgba(201,168,76,.18);
  flex-shrink: 0;
}
.survey-modal-title-wrap {
  display: flex;
  align-items: center;
  gap: 14px;
}
.survey-modal-icon {
  font-size: 1.6rem;
  color: var(--accent);
  flex-shrink: 0;
}
.survey-modal-title {
  font-family: var(--ff-sans);
  font-size: 1.08rem;
  font-weight: 700;
  color: var(--white);
  margin: 0 0 3px;
}
.survey-modal-sub {
  font-family: var(--ff-sans);
  font-size: .78rem;
  color: rgba(255,255,255,.5);
  margin: 0;
}
.survey-modal-close {
  background: none;
  border: none;
  color: rgba(255,255,255,.45);
  font-size: 1rem;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 8px;
  transition: var(--transition);
  flex-shrink: 0;
  margin-left: 12px;
}
.survey-modal-close:hover {
  color: var(--white);
  background: rgba(255,255,255,.1);
}

/* 진행 바 */
.survey-progress-bar {
  height: 4px;
  background: rgba(255,255,255,.08);
  flex-shrink: 0;
}
.survey-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent-dk), var(--accent));
  transition: width .4s cubic-bezier(.4,0,.2,1);
  border-radius: 0 4px 4px 0;
}

/* 본문 */
.survey-body {
  padding: 24px;
  overflow-y: auto;
  flex: 1;
  scrollbar-width: thin;
  scrollbar-color: rgba(201,168,76,.3) transparent;
}

/* 단계 제목 */
.survey-step-title {
  font-family: var(--ff-sans);
  font-size: .98rem;
  font-weight: 700;
  color: var(--accent);
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
}
.survey-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--navy);
  font-size: .82rem;
  font-weight: 800;
  flex-shrink: 0;
}

/* 필드 그룹 */
.survey-field-group {
  margin-bottom: 18px;
}
.survey-label {
  display: block;
  font-family: var(--ff-sans);
  font-size: .84rem;
  font-weight: 600;
  color: rgba(255,255,255,.85);
  margin-bottom: 7px;
}
.survey-label-hint {
  font-size: .74rem;
  font-weight: 400;
  color: rgba(255,255,255,.4);
  margin-left: 6px;
}
.survey-label .req {
  color: #f87171;
  margin-left: 2px;
}
.survey-input {
  width: 100%;
  padding: 11px 14px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 10px;
  color: var(--white);
  font-family: var(--ff-sans);
  font-size: .9rem;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
  box-sizing: border-box;
}
.survey-input::placeholder { color: rgba(255,255,255,.3); }
.survey-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(201,168,76,.15);
}
.survey-select {
  width: 100%;
  padding: 11px 14px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 10px;
  color: var(--white);
  font-family: var(--ff-sans);
  font-size: .9rem;
  outline: none;
  transition: border-color .2s;
  cursor: pointer;
  box-sizing: border-box;
  appearance: none;
}
.survey-select option { background: #1a2d42; color: #fff; }
.survey-select:focus { border-color: var(--accent); }
.survey-textarea {
  width: 100%;
  padding: 11px 14px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 10px;
  color: var(--white);
  font-family: var(--ff-sans);
  font-size: .88rem;
  outline: none;
  resize: vertical;
  min-height: 80px;
  transition: border-color .2s;
  box-sizing: border-box;
}
.survey-textarea::placeholder { color: rgba(255,255,255,.3); }
.survey-textarea:focus { border-color: var(--accent); }

/* 라디오 질문 */
.survey-fieldset {
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 16px;
}
.survey-legend {
  font-family: var(--ff-sans);
  font-size: .84rem;
  font-weight: 600;
  color: rgba(255,255,255,.85);
  padding: 0 6px;
  line-height: 1.45;
}
.survey-radio-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
}
.survey-radio-group label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ff-sans);
  font-size: .86rem;
  color: rgba(255,255,255,.75);
  cursor: pointer;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.07);
  transition: background .18s, border-color .18s;
}
.survey-radio-group label:hover {
  background: rgba(201,168,76,.1);
  border-color: rgba(201,168,76,.3);
}
.survey-radio-group input[type="radio"] {
  accent-color: var(--accent);
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  cursor: pointer;
}
.survey-radio-group input[type="radio"]:checked + * {
  color: var(--white);
}
.survey-radio-group label:has(input:checked) {
  background: rgba(201,168,76,.14);
  border-color: rgba(201,168,76,.45);
  color: var(--white);
}

/* 네비게이션 버튼 */
.survey-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 22px;
  gap: 10px;
}
.survey-btn-prev,
.survey-btn-next {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 22px;
  border-radius: 10px;
  font-family: var(--ff-sans);
  font-size: .88rem;
  font-weight: 700;
  cursor: pointer;
  border: none;
  transition: var(--transition);
}
.survey-btn-prev {
  background: rgba(255,255,255,.07);
  color: rgba(255,255,255,.7);
  border: 1px solid rgba(255,255,255,.12);
}
.survey-btn-prev:hover {
  background: rgba(255,255,255,.14);
  color: var(--white);
}
.survey-btn-next {
  background: var(--accent);
  color: var(--navy);
  box-shadow: 0 4px 16px rgba(201,168,76,.35);
  margin-left: auto;
}
.survey-btn-next:hover {
  background: var(--accent-lt);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(201,168,76,.45);
}
.survey-btn-done {
  background: #27ae60;
  box-shadow: 0 4px 16px rgba(39,174,96,.35);
}
.survey-btn-done:hover {
  background: #2ecc71;
  box-shadow: 0 8px 24px rgba(39,174,96,.45);
}

/* ── 결과 박스 ── */
.survey-result-box {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(201,168,76,.25);
  border-radius: 14px;
  padding: 20px;
  margin-bottom: 20px;
}
.sv-result-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  padding-bottom: 14px;
  margin-bottom: 16px;
  border-bottom: 1px solid;
}
.sv-result-grade {
  font-family: var(--ff-sans);
  font-size: 1.08rem;
  font-weight: 800;
}
.sv-result-score {
  font-family: var(--ff-sans);
  font-size: .88rem;
  color: rgba(255,255,255,.55);
}
.sv-result-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 16px;
  font-family: var(--ff-sans);
  font-size: .82rem;
}
.sv-result-table th {
  text-align: left;
  padding: 7px 10px;
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.55);
  font-weight: 600;
  font-size: .76rem;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.sv-result-table td {
  padding: 9px 10px;
  border-bottom: 1px solid rgba(255,255,255,.05);
  color: rgba(255,255,255,.8);
  line-height: 1.4;
}
.sv-result-table tr:last-child td { border-bottom: none; }
.sv-result-q { color: rgba(255,255,255,.7) !important; }
.sv-result-s  { font-weight: 700; white-space: nowrap; }
.sv-result-advice {
  background: rgba(201,168,76,.07);
  border: 1px solid rgba(201,168,76,.2);
  border-radius: 10px;
  padding: 14px 16px;
  font-family: var(--ff-sans);
}
.sv-result-advice strong {
  display: block;
  color: var(--accent);
  font-size: .86rem;
  margin-bottom: 8px;
}
.sv-result-advice ul {
  margin: 0;
  padding-left: 16px;
  color: rgba(255,255,255,.75);
  font-size: .83rem;
  line-height: 1.7;
}
.sv-result-concern {
  margin-top: 12px;
  padding: 12px 14px;
  background: rgba(255,255,255,.04);
  border-radius: 10px;
  font-family: var(--ff-sans);
  font-size: .82rem;
  color: rgba(255,255,255,.6);
}
.sv-result-concern strong { color: rgba(255,255,255,.8); display: block; margin-bottom: 4px; }
.sv-result-concern p { margin: 0; line-height: 1.55; }

/* ── 이메일 발송 박스 ── */
.survey-send-box {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  padding: 18px;
}
.survey-send-label {
  font-family: var(--ff-sans);
  font-size: .84rem;
  color: rgba(255,255,255,.65);
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  gap: 7px;
}
.survey-send-row {
  display: flex;
  gap: 8px;
  align-items: stretch;
}
.survey-send-email {
  flex: 1;
}
.survey-send-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 11px 18px;
  background: var(--accent);
  color: var(--navy);
  border: none;
  border-radius: 10px;
  font-family: var(--ff-sans);
  font-size: .86rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(201,168,76,.35);
}
.survey-send-btn:hover:not(:disabled) {
  background: var(--accent-lt);
  transform: translateY(-1px);
}
.survey-send-btn:disabled {
  opacity: .65;
  cursor: not-allowed;
}
.survey-send-status {
  margin-top: 10px;
  font-family: var(--ff-sans);
  font-size: .82rem;
  line-height: 1.55;
}
.sv-send-ok {
  color: #4ade80;
}
.sv-send-err {
  color: #fca5a5;
}
.sv-send-err a {
  color: var(--accent);
  text-decoration: underline;
}

/* mup-ext-btn button 스타일 (a → button 전환 대응) */
button.mup-ext-btn {
  cursor: pointer;
  background: none;
  font: inherit;
  text-align: center;
}

/* 반응형 */
@media (max-width: 480px) {
  .survey-modal { border-radius: 14px; }
  .survey-body  { padding: 16px; }
  .survey-modal-header { padding: 16px; }
  .survey-send-row { flex-direction: column; }
  .survey-send-btn { width: 100%; justify-content: center; }
  .sv-result-header { flex-direction: column; align-items: flex-start; }
}

/* ══════════════════════════════════════════════════════════
   tool-modal--wide : 나침반·AI상담 인터랙티브 폼 전용
══════════════════════════════════════════════════════════ */
.tool-modal--wide {
  max-width: 680px;
  width: 100%;
}
.tool-modal--wide .tool-modal-body {
  max-height: 74vh;
  overflow-y: auto;
  scroll-behavior: smooth;
}

/* ══════════════════════════════════════════════════════════
   응급처치 패널 — 메일 발송 실패 시 대체 수단
══════════════════════════════════════════════════════════ */
.emergency-panel {
  background: #fff8f0;
  border: 1.5px solid #f97316;
  border-radius: 12px;
  padding: 18px 20px;
  margin-top: 16px;
  animation: fadeInUp .35s ease both;
}
.emergency-panel-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 700;
  color: #c2410c;
  margin-bottom: 14px;
}
.emergency-panel-title i {
  font-size: 16px;
  color: #f97316;
}
.emergency-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}
.emg-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 16px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  border: none;
  transition: opacity .2s, transform .15s;
  white-space: nowrap;
}
.emg-btn:hover { opacity: .88; transform: translateY(-1px); }
.emg-btn--copy  { background: #1e3a5f; color: #fff; }
.emg-btn--sms   { background: #16a34a; color: #fff; }
.emg-btn--kakao { background: #fee500; color: #1a1a1a; }
.emg-btn--mail  { background: #7c3aed; color: #fff; }
.emg-textarea {
  width: 100%;
  min-height: 110px;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  background: #fff;
  padding: 10px 12px;
  font-size: 12.5px;
  color: #555;
  resize: vertical;
  font-family: 'Nanum Gothic', sans-serif;
  line-height: 1.6;
  box-sizing: border-box;
}
.emg-textarea:focus { outline: none; border-color: #f97316; }

/* ══════════════════════════════════════════════════════════
   공유 버튼 행 — 결과 Step 하단
══════════════════════════════════════════════════════════ */
.share-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
  padding: 14px 16px;
  background: rgba(30,58,95,.04);
  border-radius: 10px;
  border: 1px solid rgba(30,58,95,.1);
}
.share-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border: none;
  transition: opacity .2s, transform .15s;
  flex: 1 1 auto;
  justify-content: center;
  min-width: 80px;
}
.share-btn:hover { opacity: .85; transform: translateY(-1px); }
.share-btn--copy  { background: #1e3a5f; color: #fff; }
.share-btn--sms   { background: #16a34a; color: #fff; }
.share-btn--kakao { background: #fee500; color: #1a1a1a; }

/* ══════════════════════════════════════════════════════════
   상담 종료 버튼 — MUP 영역 하단
══════════════════════════════════════════════════════════ */
.mup-session-end-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px dashed rgba(255,255,255,.15);
}
.mup-session-end-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 20px;
  background: rgba(231,76,60,.15);
  border: 1.5px solid rgba(231,76,60,.45);
  border-radius: 8px;
  color: #fca5a5;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: background .2s, border-color .2s, color .2s, transform .15s;
}
.mup-session-end-btn:hover {
  background: rgba(231,76,60,.3);
  border-color: rgba(231,76,60,.7);
  color: #fff;
  transform: translateY(-1px);
}
.mup-session-end-btn i { font-size: 15px; }
.mup-session-end-hint {
  font-size: 11px;
  color: rgba(255,255,255,.4);
  text-align: center;
  line-height: 1.4;
}

/* ══════════════════════════════════════════════════════════
   나침반 결과 — 방향 카드
══════════════════════════════════════════════════════════ */
.cp-directions-wrap {
  margin: 14px 0;
}
.cp-directions-label {
  font-size: 13.5px;
  font-weight: 700;
  color: #1e3a5f;
  margin-bottom: 10px;
}
.cp-direction-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 12px 14px;
  background: #f4f8ff;
  border-radius: 10px;
  margin-bottom: 8px;
  border: 1px solid #dbeafe;
}
.cp-direction-icon {
  font-size: 24px;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 2px;
}
.cp-direction-title {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: #1e3a5f;
  margin-bottom: 4px;
}
.cp-direction-desc {
  margin: 0;
  font-size: 12.5px;
  color: #555;
  line-height: 1.55;
}

/* survey-textarea (AI상담 3단계 자유입력) */
.survey-textarea {
  width: 100%;
  border: 1.5px solid rgba(255,255,255,.15);
  border-radius: 8px;
  background: rgba(255,255,255,.06);
  color: #e8eaf6;
  padding: 10px 14px;
  font-size: 14px;
  font-family: inherit;
  resize: vertical;
  transition: border-color .2s;
  box-sizing: border-box;
  min-height: 90px;
}
.survey-textarea:focus {
  outline: none;
  border-color: rgba(201,168,76,.7);
  background: rgba(255,255,255,.09);
}
.survey-textarea::placeholder { color: rgba(255,255,255,.3); }

/* 반응형 추가 */
@media (max-width: 480px) {
  .tool-modal--wide { max-width: 100%; }
  .emergency-actions { flex-direction: column; }
  .emg-btn { width: 100%; justify-content: center; }
  .share-btn-row { flex-direction: column; }
  .share-btn { width: 100%; }
  .mup-session-end-btn { width: 100%; justify-content: center; }
  .cp-direction-card { flex-direction: column; }
}
