:root {
  --sidebar-width: 230px;
  --sidebar-bg: #ffffff;
  --sidebar-border: #e2e8f0;
  --sidebar-text: #475569;
  --sidebar-active-bg: #eff6ff;
  --sidebar-active-text: #0ea5e9;
  --accent: #0ea5e9;
  --accent-dark: #0284c7;
  --accent-light: #e0f2fe;
  --header-height: 60px;
  --bg: #f8fafc;
  --surface: #ffffff;
  --border: #e2e8f0;
  --text-primary: #0f172a;
  --text-secondary: #64748b;
  --danger: #ef4444;
  --warning: #f59e0b;
  --success: #10b981;
  --shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 4px 12px rgba(0,0,0,.08);
  --radius: 12px;
}

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

body {
  background: var(--bg);
  color: var(--text-primary);
  font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 14px;
}

/* 상단 네비게이션 바 */
.top-nav { position:sticky;top:0;z-index:1040;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm); }
.top-nav-inner { max-width:1200px;margin:0 auto;height:64px;display:flex;align-items:center;gap:1.5rem;padding:0 1.5rem; }
.nav-brand { display:flex;align-items:center;text-decoration:none;flex-shrink:0; }
.nav-brand img { height:34px;width:auto;display:block; }
.nav-links { display:flex;align-items:center;gap:.25rem; }
.nav-link-item { display:flex;align-items:center;gap:.45rem;padding:.5rem .85rem;border-radius:8px;color:var(--sidebar-text);text-decoration:none;font-size:.88rem;font-weight:500;transition:background .12s,color .12s;white-space:nowrap; }
.nav-link-item:hover { background:var(--sidebar-active-bg);color:var(--accent); }
.nav-link-item.active { background:var(--sidebar-active-bg);color:var(--sidebar-active-text);font-weight:600; }
.nav-link-item i { font-size:1rem; }

.page-content { padding:1.5rem;min-height:calc(100vh - 64px - 60px); }
.page-container { max-width:1200px;margin:0 auto; }

.card-surface { background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:1.25rem; }
.kpi-card { background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:1.25rem 1.5rem;transition:box-shadow .15s; }
.kpi-card:hover { box-shadow:var(--shadow-md); }
.kpi-icon { width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:.75rem; }
.kpi-value { font-size:1.6rem;font-weight:700;line-height:1; }
.kpi-label { font-size:.78rem;color:var(--text-secondary);margin-top:.2rem; }

.table-surface { background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden; }
.table-surface .table { margin-bottom:0;font-size:.855rem; }
.table-surface .table thead th { background:#f8fafc;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:.7rem 1rem;white-space:nowrap; }
.table-surface .table tbody td { padding:.75rem 1rem;vertical-align:middle;border-color:#f1f5f9; }
.table-surface .table tbody tr { transition:background .1s; }
.table-surface .table tbody tr:hover { background:#f0f9ff; }

.chip { display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;gap:.3rem; }
.chip-blue { background:#eff6ff;color:#2563eb; }
.chip-red { background:#fff1f2;color:#e11d48; }
.chip-green { background:#f0fdf4;color:#16a34a; }
.chip-yellow { background:#fffbeb;color:#d97706; }
.chip-gray { background:#f1f5f9;color:#64748b; }

.btn-accent { background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.45rem 1rem;font-weight:600;font-size:.855rem;transition:background .12s,box-shadow .12s;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem; }
.btn-accent:hover { background:var(--accent-dark);color:#fff;box-shadow:0 2px 8px rgba(14,165,233,.3); }
.btn-outline-accent { background:transparent;color:var(--accent);border:1.5px solid var(--accent);border-radius:8px;padding:.4rem 1rem;font-weight:600;font-size:.855rem;transition:background .12s;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem; }
.btn-outline-accent:hover { background:var(--accent-light);color:var(--accent-dark); }

.form-control,.form-select { border-radius:8px;border-color:var(--border);font-size:.88rem;transition:border-color .15s,box-shadow .15s; }
.form-control:focus,.form-select:focus { border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,165,233,.12); }
.form-label { font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:.3rem; }

.filter-bar { background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:1rem 1.25rem;margin-bottom:1rem; }

.mobile-bottom-nav { position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);display:flex;z-index:1030;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 10px rgba(0,0,0,.06); }
.mobile-nav-item { flex:1;display:flex;flex-direction:column;align-items:center;padding:.55rem .25rem;font-size:.68rem;font-weight:500;color:var(--text-secondary);text-decoration:none;gap:3px; }
.mobile-nav-item i { font-size:1.25rem; }
.mobile-nav-item.active { color:var(--accent); }

@media (max-width:991.98px) {
  .page-content { padding-bottom:80px; }
  .site-footer { margin-bottom:60px; }
}

.notif-item { border-left:3px solid transparent;transition:background .1s; }
.notif-item.unread { border-left-color:var(--accent);background:#f0f9ff; }
.text-accent { color:var(--accent); }
.divider { border-top:1px solid var(--border);margin:1rem 0; }

/* ===== 홈페이지 전용 확장 ===== */

.hero {
  background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 45%, #0f172a 100%);
  border-radius: var(--radius);
  color: #fff;
  padding: 3rem 2.5rem;
  position: relative;
  overflow: hidden;
}
.hero::after {
  content: "";
  position: absolute;
  right: -80px;
  top: -80px;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
}
.hero-badge { display:inline-flex;align-items:center;gap:.35rem;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.25rem .8rem;font-size:.75rem;font-weight:600;margin-bottom:1rem; }
.hero h2 { font-size:1.9rem;font-weight:800;line-height:1.3;margin-bottom:.75rem; }
.hero p { font-size:.95rem;color:rgba(255,255,255,.85);max-width:560px;margin-bottom:1.5rem; }
.hero .btn-hero-primary { background:#fff;color:var(--accent-dark);border:none;border-radius:8px;padding:.6rem 1.3rem;font-weight:700;font-size:.9rem;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;transition:transform .12s,box-shadow .12s; }
.hero .btn-hero-primary:hover { transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.25); }
.hero .btn-hero-ghost { background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.5);border-radius:8px;padding:.55rem 1.2rem;font-weight:600;font-size:.9rem;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;transition:background .12s; }
.hero .btn-hero-ghost:hover { background:rgba(255,255,255,.12);color:#fff; }

.section-title { font-size:1.05rem;font-weight:700;margin-bottom:.25rem; }
.section-desc { font-size:.85rem;color:var(--text-secondary);margin-bottom:1rem; }

.feature-card { background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:1.5rem;height:100%;transition:box-shadow .15s,transform .15s; }
.feature-card:hover { box-shadow:var(--shadow-md);transform:translateY(-2px); }
.feature-card h5 { font-size:.95rem;font-weight:700;margin:.85rem 0 .4rem; }
.feature-card p { font-size:.82rem;color:var(--text-secondary);margin:0; }

.cta-banner { background:linear-gradient(135deg,#0f172a 0%,#0284c7 100%);border-radius:var(--radius);color:#fff;padding:2rem 2.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap; }
.cta-banner h4 { font-size:1.15rem;font-weight:700;margin-bottom:.25rem; }
.cta-banner p { font-size:.85rem;color:rgba(255,255,255,.8);margin:0; }

.shot-card { background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden;height:100%;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s; }
.shot-card:hover { box-shadow:var(--shadow-md);transform:translateY(-2px); }
.shot-card a.shot-img { display:block;border-bottom:1px solid var(--border);background:#f8fafc; }
.shot-card img { width:100%;height:auto;display:block; }
.shot-card .shot-caption { padding:.85rem 1rem; }
.shot-card .shot-caption h6 { font-size:.85rem;font-weight:700;margin:0 0 .15rem; }
.shot-card .shot-caption p { font-size:.75rem;color:var(--text-secondary);margin:0; }

.site-footer { border-top:1px solid var(--border);background:var(--surface);padding:1.25rem 1.5rem;font-size:.78rem;color:var(--text-secondary);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem; }

/* 이름에 담긴 뜻 (Keep Your Kernel) 배너 */
.kyk-kernel-banner { display:block;width:100%;height:auto;margin-top:1.25rem;border-radius:var(--radius);box-shadow:var(--shadow-md); }
