@font-face{font-family:'A2z';src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@main/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-4Regular.woff2') format('woff2');font-weight:400;font-display:swap;}
@font-face{font-family:'A2z';src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@main/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-5Medium.woff2') format('woff2');font-weight:500;font-display:swap;}
@font-face{font-family:'A2z';src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@main/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-6SemiBold.woff2') format('woff2');font-weight:600;font-display:swap;}
@font-face{font-family:'A2z';src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@main/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-7Bold.woff2') format('woff2');font-weight:700;font-display:swap;}
@font-face{font-family:'A2z';src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/2601-6@main/%EC%97%90%EC%9D%B4%ED%88%AC%EC%A7%80%EC%B2%B4-8ExtraBold.woff2') format('woff2');font-weight:800;font-display:swap;}

:root{
  --font-primary: 'Pretendard', 'Noto Sans KR', sans-serif;
  --bg: #FAFAF7;
  --bg-raised: #FFFFFF;
  --ink: #14171C;
  --ink-soft: #454A52;
  --muted: #8B8F97;
  --hairline: #E4E4DF;
  --indigo: #1B2A4A;
  --indigo-soft: #E9ECF3;
  --amber: #C8842A;
  --amber-soft: #F6EBD9;
  --card-hover: #FDFCF9;
  --overlay-strong: rgba(20,23,28,0.72);
  --control-bg: var(--bg-raised);
  --control-border: var(--hairline);
  --radius: 3px;
  --max: 1120px;
  --header-height: 69px; /* 개발자도구 실측값 (header.site-header 박스 모델 기준, border-bottom 1px 포함) */
  /* 배경을 채우는 버튼 전용 색상 - 라이트/다크 모드 관계없이 항상 동일하게 유지되어
     하얀 배경엔 너무 튀지 않고, 검은 배경엔 흰 글자와의 대비가 충분하도록 함 */
  --brand-solid: #4C5FD5;
  --brand-solid-hover: #3D4EB8;
  /* 헤드라인 강조색: 라이트모드는 --indigo(짙은 네이비)가 본문 잉크색과 구분이 잘 안 되므로
     대비가 확실한 브랜드 블루를 사용, 다크모드는 기존 --indigo가 충분히 잘 보여서 그대로 사용 */
  --headline-accent: var(--brand-solid);
}

html[data-theme="dark"]{
  --bg: #0E1116;
  --bg-raised: #161B22;
  --ink: #E7E9EC;
  --ink-soft: #A8AEB8;
  --muted: #6B7280;
  --hairline: #262B33;
  --indigo: #7C9CD6;
  --indigo-soft: #1B2331;
  --amber: #E8A33D;
  --amber-soft: #2A2115;
  --card-hover: #1A2029;
  --overlay-strong: rgba(0,0,0,0.75);
  --control-bg: #232A34;
  --control-border: #38414D;
  --headline-accent: var(--indigo);
}

html, body{
  transition: background-color .25s ease, color .25s ease;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.nightflight-theme *{ box-sizing: border-box; }
.nightflight-theme{ scroll-behavior: smooth; }
html, body{ margin:0; padding:0; background-color:var(--bg); min-height:100%; }
.nightflight-theme .skip{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.nightflight-theme .skip a:focus{
  position:fixed; top:8px; left:8px; width:auto; height:auto;
  padding:10px 16px; background:var(--indigo); color:#fff;
  z-index:9999; clip:auto; white-space:normal; border-radius:var(--radius);
}
.nightflight-theme #content{ padding:6px 14px 80px; min-height:50vh; }
.nightflight-theme #content::after{ content:""; display:table; clear:both; }
.nightflight-theme .site-shell{ display:flex; align-items:flex-start; max-width:var(--max); width:100%; margin:0 auto; padding:0 14px; box-sizing:border-box; flex:1; }
.nightflight-theme .site-shell #content{ flex:1; min-width:0; padding-left:14px; padding-right:0; }
.nightflight-theme .side-nav{
  width:190px; flex-shrink:0; box-sizing:border-box;
  padding:16px 12px 24px; position:sticky; top:calc(var(--header-height) + 15px); align-self:flex-start;
  max-height:calc(100vh - (var(--header-height) + 15px)); overflow-y:auto;
  border:1px solid var(--hairline); border-radius:8px;
  margin:9px 0 16px 0;
}
.nightflight-theme .side-nav-top,
.nightflight-theme .side-nav-top-link{
  display:block; font-weight:700; font-size:0.86rem; color:var(--ink); padding:10px 8px 6px; text-decoration:none;
}
.nightflight-theme .side-nav-top-link:hover{ color:var(--indigo); }
.nightflight-theme .side-nav-sub{ display:flex; flex-direction:column; }
.nightflight-theme .side-nav-sub a{
  font-size:0.82rem; color:var(--ink-soft); padding:6px 8px 6px 20px; text-decoration:none; border-radius:4px;
}
.nightflight-theme .side-nav-sub a:hover{ background:var(--indigo-soft); color:var(--indigo); }
.nightflight-theme .side-nav-divider{ height:1px; background:var(--hairline); margin:14px 4px; }
.nightflight-theme .side-nav-tools{ display:flex; flex-direction:column; gap:8px; padding:0 4px; }
.nightflight-theme .side-nav-tool-btn{
  display:flex; align-items:center; gap:8px; font-family:inherit; font-size:0.82rem; font-weight:500;
  color:var(--ink-soft); background:var(--control-bg); border:1px solid var(--control-border); border-radius:6px;
  padding:9px 10px; cursor:pointer; text-align:left; width:100%;
}
.nightflight-theme .side-nav-tool-btn svg{ width:16px; height:16px; flex-shrink:0; }
.nightflight-theme .side-nav-tool-btn:hover{ color:var(--ink); border-color:var(--muted); }
/* NIGHTFLIGHT CUSTOM: 화면 높이가 낮으면(가로모드 소형 태블릿 등) sticky+내부 스크롤(overflow-y:auto)
   조합이 "고정(stuck) 상태"와 "일반 흐름으로 풀리는 상태" 전환 경계에서 스크롤이 중간에 걸려
   맨 위/맨 아래에 닿지 못하는 문제가 있어, 이 구간에서는 사이드바를 본문과 동일하게 취급
   (테두리 박스 전체가 페이지 스크롤을 그대로 따라가도록 sticky/overflow/max-height 해제) */
@media (max-height:820px){
  .nightflight-theme .side-nav{ position:static; top:auto; max-height:none; overflow-y:visible; }
}
@media (max-width:880px){
  .nightflight-theme .side-nav{ display:none; }
  .nightflight-theme .site-shell #content{ padding-left:0; }
}
/* 라이믹스 에디터가 저장 시 자동으로 넣는 float:left 무효화 (부모 높이 계산이 깨지는 원인) */
.nightflight-theme .xe_widget-wrapper,
.nightflight-theme [style*="float:left"],
.nightflight-theme [style*="float: left"]{ float:none !important; width:100% !important; }
.nightflight-theme{
  min-height:100vh;
  display:flex; flex-direction:column;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-primary);
  -webkit-font-smoothing:antialiased;
}
.nightflight-theme a{ color:inherit; text-decoration:none; }
.nightflight-theme a:focus-visible, .nightflight-theme button:focus-visible{
  outline:2px solid var(--indigo);
  outline-offset:2px;
}
.nightflight-theme .wrap{ max-width:var(--max); margin:0 auto; padding:0; }
.nightflight-theme .mono{ font-family:'IBM Plex Mono', monospace; }
.nightflight-theme .serif{ font-family:var(--font-primary); }

/* ---------- PhotoSwipe(라이믹스 코어 이미지 확대보기) 닫힘 잔여물 방지 ----------
   닫힐 때 pswp--open/pswp--visible 클래스 제거 트랜지션이 간헐적으로 끝나지 않아
   확대 레이어가 썸네일 위에 남아 겹쳐 보이고 클릭을 가로채는 문제가 있음.
   aria-hidden="true"는 항상 정확히 찍히므로 이를 기준으로 강제 숨김 처리. */
.pswp[aria-hidden="true"]{
  display:none !important;
  pointer-events:none !important;
}

/* ---------- Header ---------- */
.nightflight-theme header.site-header{
  border-bottom:1px solid var(--hairline);
  background:var(--bg-raised);
  position:sticky; top:0; z-index:20;
}
.nightflight-theme .header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:6px 14px; max-width:var(--max); margin:0 auto;
}
.nightflight-theme .brand{ display:flex; align-items:baseline; gap:10px; margin-left:0; }
.nightflight-theme .brand-logo-img{ height:56px; width:auto; display:block; }
.nightflight-theme .brand-mark{ font-weight:700; font-size:1.15rem; letter-spacing:-0.01em; }
.nightflight-theme .brand-sub{ font-family:'IBM Plex Mono', monospace; font-size:0.68rem; color:var(--muted); letter-spacing:0.06em; }
.nightflight-theme nav{ display:flex; gap:18px; }
.nightflight-theme nav a{ font-size:0.82rem; color:var(--ink-soft); font-weight:500; padding:4px 0; border-bottom:1px solid transparent; transition:border-color .15s, color .15s; white-space:nowrap; }
.nightflight-theme nav a:hover{ color:var(--ink); border-bottom-color:var(--indigo); }

/* ---------- Dropdown group nav (desktop) ---------- */
.nightflight-theme .main-nav{ display:flex; align-items:center; gap:6px; }
.nightflight-theme .nav-group{ position:relative; }
.nightflight-theme .nav-top{
  font-family:inherit; font-size:0.82rem; color:var(--ink-soft); font-weight:500;
  background:none; border:none; cursor:pointer; padding:8px 6px; border-bottom:1px solid transparent;
  transition:border-color .15s, color .15s;
}
.nightflight-theme .nav-top::after{ content:'▾'; font-size:0.6rem; margin-left:5px; opacity:0.6; }
.nightflight-theme .nav-top:hover,
.nightflight-theme .nav-group.open .nav-top{ color:var(--ink); border-bottom-color:var(--indigo); }
.nightflight-theme .nav-dropdown{
  position:absolute; top:calc(100% + 4px); left:0; min-width:180px;
  background:var(--bg-raised); border:1px solid var(--hairline); border-radius:6px;
  box-shadow:0 10px 28px rgba(20,23,28,0.10); padding:6px; z-index:25;
  display:flex; flex-direction:column;
  opacity:0; visibility:hidden; transform:translateY(-4px);
  transition:opacity .15s ease, transform .15s ease, visibility .15s;
}
.nightflight-theme .nav-group:hover .nav-dropdown,
.nightflight-theme .nav-group.open .nav-dropdown{
  opacity:1; visibility:visible; transform:translateY(0);
}
.nightflight-theme .nav-dropdown a{
  padding:9px 10px; border-radius:4px; border-bottom:none; white-space:nowrap;
}
.nightflight-theme .nav-dropdown a:hover{ background:var(--indigo-soft); color:var(--indigo); }
.nightflight-theme .nav-top-link{
  font-family:inherit; font-size:0.82rem; color:var(--ink-soft); font-weight:500;
  padding:8px 6px; border-bottom:1px solid transparent; text-decoration:none;
  transition:border-color .15s, color .15s;
}
.nightflight-theme .nav-top-link:hover{ color:var(--ink); border-bottom-color:var(--indigo); }

.nightflight-theme .header-actions{ display:flex; align-items:center; gap:14px; }
.nightflight-theme .btn-ghost{ font-size:0.82rem; color:var(--ink-soft); }
.nightflight-theme .btn-solid{
  font-size:0.82rem; font-weight:600; color:var(--ink-soft);
  background:var(--control-bg); border:1px solid var(--control-border);
  padding:8px 16px; border-radius:var(--radius);
}
.nightflight-theme .btn-solid:hover{ color:var(--ink); border-color:var(--muted); }
.nightflight-theme .nav-toggle{
  display:none;
  width:34px; height:34px; border:1px solid var(--control-border); border-radius:4px;
  background:var(--control-bg); align-items:center; justify-content:center;
  cursor:pointer; padding:0; color:var(--ink-soft);
}
.nightflight-theme .nav-toggle:hover{ color:var(--ink); border-color:var(--muted); }
.nightflight-theme .nav-toggle svg{ width:18px; height:18px; }
.nightflight-theme .nav-toggle .icon-close{ display:none; }
.nightflight-theme .nav-toggle[aria-expanded="true"] .icon-menu{ display:none; }
.nightflight-theme .nav-toggle[aria-expanded="true"] .icon-close{ display:block; }

/* NIGHTFLIGHT CUSTOM: 헤더 통합검색 (고정형, 확장 애니메이션 없음) */
.nightflight-theme .site-search{ display:flex; align-items:center; position:relative; }
.nightflight-theme .site-search-input{
  width:170px; height:34px; box-sizing:border-box;
  padding:0 36px 0 12px; border:1px solid var(--control-border); border-radius:4px;
  background:var(--control-bg); color:var(--ink); font-size:13px;
  transition:border-color .15s ease;
}
.nightflight-theme .site-search-input::placeholder{ color:var(--ink-soft); }
.nightflight-theme .site-search-input:focus{ outline:none; border-color:var(--muted); }
.nightflight-theme .site-search-toggle{
  position:absolute; right:0; top:0; width:34px; height:34px;
  display:flex; align-items:center; justify-content:center;
  background:none; border:0; padding:0; cursor:pointer; color:var(--ink-soft);
}
.nightflight-theme .site-search-toggle:hover{ color:var(--ink); }
.nightflight-theme .site-search-toggle svg{ width:16px; height:16px; }
.nightflight-theme .theme-toggle{
  width:34px; height:34px; border:1px solid var(--control-border); border-radius:4px;
  background:var(--control-bg); display:flex; align-items:center; justify-content:center;
  cursor:pointer; padding:0; color:var(--ink-soft);
}
.nightflight-theme .theme-toggle:hover{ color:var(--ink); border-color:var(--muted); }
.nightflight-theme .theme-toggle svg{ width:17px; height:17px; }
.nightflight-theme .theme-toggle .icon-moon{ display:none; }
.nightflight-theme .theme-toggle .icon-system{ display:none; }
html[data-theme-mode="dark"] .nightflight-theme .theme-toggle .icon-sun{ display:none; }
html[data-theme-mode="dark"] .nightflight-theme .theme-toggle .icon-moon{ display:block; }
html[data-theme-mode="system"] .nightflight-theme .theme-toggle .icon-sun{ display:none; }
html[data-theme-mode="system"] .nightflight-theme .theme-toggle .icon-system{ display:block; }

.nightflight-theme .theme-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:2px 0 14px;
}
.nightflight-theme .theme-row-label{ font-size:0.86rem; color:var(--ink-soft); font-weight:500; }
.nightflight-theme .theme-cycle-btn{
  display:flex; align-items:center; gap:6px;
  padding:6px 10px; border-radius:8px;
  background:var(--control-bg); border:1px solid var(--control-border);
  cursor:pointer; color:var(--ink-soft); font-size:0.82rem; font-weight:500;
}
.nightflight-theme .theme-cycle-btn:hover{ color:var(--ink); border-color:var(--muted); }
.nightflight-theme .theme-cycle-btn svg{ width:15px; height:15px; flex-shrink:0; }
.nightflight-theme .theme-cycle-btn .theme-cycle-value{ display:inline-block; min-width:2.6em; text-align:left; }
.nightflight-theme .theme-cycle-btn .icon-moon{ display:none; }
.nightflight-theme .theme-cycle-btn .icon-system{ display:none; }
html[data-theme-mode="dark"] .nightflight-theme .theme-cycle-btn .icon-sun{ display:none; }
html[data-theme-mode="dark"] .nightflight-theme .theme-cycle-btn .icon-moon{ display:block; }
html[data-theme-mode="system"] .nightflight-theme .theme-cycle-btn .icon-sun{ display:none; }
html[data-theme-mode="system"] .nightflight-theme .theme-cycle-btn .icon-system{ display:block; }

.nightflight-theme .nav-backdrop{
  display:none;
  position:fixed; inset:0; background:rgba(20,23,28,0.35);
  opacity:0; visibility:hidden;
  transition:opacity .25s ease, visibility .25s ease;
  z-index:29;
}
.nightflight-theme .nav-backdrop.open{ opacity:1; visibility:visible; }

.nightflight-theme .mobile-nav{
  display:none;
  position:fixed; top:0; right:0; height:100%; width:min(78vw, 320px);
  background:var(--bg-raised);
  border-left:1px solid var(--hairline);
  box-shadow:-8px 0 24px rgba(20,23,28,0.08);
  transform:translateX(100%);
  transition:transform .28s cubic-bezier(.4,0,.2,1);
  z-index:30;
  overflow-y:auto;
}
.nightflight-theme .mobile-nav.open{ transform:translateX(0); }
.nightflight-theme .mobile-nav-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 22px; border-bottom:1px solid var(--hairline);
}
.nightflight-theme .mobile-nav-head span{ font-family:'IBM Plex Mono', monospace; font-size:0.7rem; color:var(--muted); letter-spacing:0.08em; text-transform:uppercase; }
.nightflight-theme .mobile-nav-close{
  width:30px; height:30px; border:1px solid var(--control-border); border-radius:4px;
  background:var(--control-bg); display:flex; align-items:center; justify-content:center; cursor:pointer;
  color:var(--ink-soft);
}
.nightflight-theme .mobile-nav-close:hover{ color:var(--ink); border-color:var(--muted); }
.nightflight-theme .mobile-nav-close svg{ width:16px; height:16px; }
.nightflight-theme .mobile-nav ul{ list-style:none; margin:0; padding:6px 10px 14px; }
.nightflight-theme .mobile-nav li{ border-bottom:1px solid var(--hairline); }
.nightflight-theme .mobile-nav li:last-child{ border-bottom:none; }
.nightflight-theme .mobile-nav a{
  display:block; padding:16px 12px; font-size:1rem; font-weight:500; color:var(--ink);
}
.nightflight-theme .mobile-nav a:hover{ color:var(--indigo); }
.nightflight-theme .mobile-nav details{ padding:0; }
.nightflight-theme .mobile-nav summary{
  display:block; padding:16px 12px; font-size:1rem; font-weight:500; color:var(--ink);
  cursor:pointer; list-style:none; position:relative;
}
.nightflight-theme .mobile-nav summary::-webkit-details-marker{ display:none; }
.nightflight-theme .mobile-nav summary::after{
  content:'+'; position:absolute; right:12px; top:50%; transform:translateY(-50%);
  color:var(--muted); font-size:1.1rem;
}
.nightflight-theme .mobile-nav details[open] summary::after{ content:'−'; }
.nightflight-theme .mobile-nav ul.sub{ list-style:none; margin:0; padding:0 0 8px 12px; }
.nightflight-theme .mobile-nav ul.sub li{ border-bottom:none; }
.nightflight-theme .mobile-nav ul.sub a{ padding:12px; font-size:0.92rem; color:var(--ink-soft); }
.nightflight-theme .mobile-nav-foot .btn-ghost{ color:var(--ink-soft); }
.nightflight-theme .mobile-nav-foot{ padding:18px 22px; border-top:1px solid var(--hairline); display:flex; flex-direction:column; gap:10px; }

/* ---------- Masthead ---------- */
.nightflight-theme .masthead{
}
.nightflight-theme .masthead-inner{
  max-width:var(--max); margin:0 auto; padding:8px 0 10px;
  display:flex; flex-wrap:wrap; align-items:stretch; gap:12px;
}
.nightflight-theme .masthead-inner .xe-widget-wrapper,
.nightflight-theme .masthead-inner .xe-widget-wrapper > div{
  display:contents;
}
.nightflight-theme .eyebrow{
  font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:var(--amber);
  letter-spacing:0.08em; margin:0 0 14px; text-transform:uppercase;
}
.nightflight-theme .footer-eyebrow{
  font-family:'IBM Plex Mono', monospace; font-size:0.68rem; color:var(--amber);
  letter-spacing:0.08em; margin:0 0 8px; text-transform:uppercase;
}
.nightflight-theme .headline{
  font-size:2.6rem; line-height:1.15; margin:0 0 16px; letter-spacing:-0.02em; font-weight:600;
}
.nightflight-theme .headline em{ font-style:normal; color:var(--headline-accent); }
.nightflight-theme .sub{ font-size:1.02rem; color:var(--ink-soft); max-width:46ch; line-height:1.6; margin:0; }

.nightflight-theme .sky-panel{
  background:var(--bg-raised); border:1px solid var(--hairline); border-radius:6px;
  padding:22px 24px;
}
.nightflight-theme .sky-panel-title{
  font-family:'IBM Plex Mono', monospace; font-size:0.68rem; color:var(--muted);
  letter-spacing:0.08em; text-transform:uppercase; margin:0 0 16px;
  display:flex; justify-content:space-between;
}
.nightflight-theme .sky-rows{ display:flex; flex-direction:column; gap:11px; }
.nightflight-theme .sky-row{ display:flex; justify-content:space-between; align-items:center; font-size:0.9rem; }
.nightflight-theme .sky-row .label{ color:var(--ink-soft); }
.nightflight-theme .sky-row .val{ font-family:'IBM Plex Mono', var(--font-primary), monospace; font-weight:500; }
.nightflight-theme .moon-phase-img{ width:18px; height:18px; vertical-align:-4px; margin-right:6px; border-radius:50%; }

.nightflight-theme .moon-icon{
  width:16px; height:16px; border-radius:50%;
  background:linear-gradient(90deg, var(--indigo) 50%, var(--amber-soft) 50%);
  display:inline-block; margin-right:6px; vertical-align:-2px;
  border:1px solid var(--hairline);
}

/* ---------- Section shell (홈페이지 .wrap 안의 section에만 적용, 다른 곳의 section 태그와 충돌 방지) ---------- */
.nightflight-theme .wrap section{ padding:16px 0; }
.nightflight-theme .wrap section:first-of-type{ padding-top:32px; }
/* fp-grid 내부 섹션은 grid의 gap이 행 간격을 담당하므로 자체 패딩을 없애 1행 3칸의 상단을 맞춤 */
.nightflight-theme .fp-grid section{ padding:0; }
.nightflight-theme .fp-grid section:first-of-type{ padding-top:0; }
.nightflight-theme .fp-grid{ padding:6px 0 16px; }

/* ---------- 회원 마이페이지 (라이믹스 기본 스킨) 다크모드 대응 ---------- */
.nightflight-theme .xm{ color:var(--ink); }
.nightflight-theme .xm .nav-tabs{
  display:flex; flex-wrap:wrap; gap:4px; list-style:none; padding:0; margin:0 0 24px;
  border-bottom:1px solid var(--hairline);
}
.nightflight-theme .xm .nav-tabs a{
  display:inline-block; padding:10px 14px; color:var(--ink-soft) !important;
  border-bottom:2px solid transparent; text-decoration:none;
}
.nightflight-theme .xm .nav-tabs li.active a{ color:var(--brand-solid) !important; border-bottom-color:var(--brand-solid); font-weight:600; }
.nightflight-theme .xm .nav-tabs a:hover{ color:var(--ink) !important; background:var(--card-hover); }

.nightflight-theme .xm .btnArea .btn,
.nightflight-theme .xm .btn-group .btn,
.nightflight-theme .xm .btn{
  display:inline-block; background:var(--control-bg); border:1px solid var(--control-border);
  color:var(--ink-soft) !important; padding:8px 14px; border-radius:var(--radius);
  font-size:0.85rem; margin-right:6px; text-decoration:none; cursor:pointer;
}
.nightflight-theme .xm .btn:hover{ color:var(--ink) !important; border-color:var(--muted); }

.nightflight-theme .xm dl.dl-horizontal dt{ color:var(--muted); }
.nightflight-theme .xm dl.dl-horizontal dd{ color:var(--ink) !important; }

.nightflight-theme .xm table{ width:100%; border-collapse:collapse; }
.nightflight-theme .xm table th{ color:var(--muted) !important; border-bottom:1px solid var(--hairline); padding:8px; text-align:left; background:transparent !important; }
.nightflight-theme .xm table td{ color:var(--ink) !important; border-bottom:1px solid var(--hairline); padding:8px; background:transparent !important; }
.nightflight-theme .xm table a{ color:var(--ink) !important; }
.nightflight-theme .xm table.table-striped tbody tr:nth-child(odd) td{ background:var(--card-hover) !important; }

/* 마이페이지 내 검색창/셀렉트 높이 통일 및 다크모드 대응 */
.nightflight-theme .xm input[type="text"],
.nightflight-theme .xm input[type="password"],
.nightflight-theme .xm select{
  height:30px; box-sizing:border-box; vertical-align:middle;
  background:var(--control-bg) !important; color:var(--ink) !important;
  border:1px solid var(--control-border) !important; border-radius:var(--radius);
  padding:0 8px; font-size:0.85rem;
}

/* 버튼류 전반 (스크랩/쪽지함/친구 목록 등 클래스가 제각각이라 넓게 대응) */
.nightflight-theme .xm button,
.nightflight-theme .xm input[type="submit"],
.nightflight-theme .xm input[type="button"],
.nightflight-theme .xm .btn,
.nightflight-theme .xm a.btn{
  /* NIGHTFLIGHT CUSTOM: 라이믹스 코어(rhymix.scss)의 button{height:24px!important} 전역 리셋을 이기기 위해 !important 필요 */
  /* NIGHTFLIGHT CUSTOM: line-height 대신 flex 가운데 정렬로 버튼 높이 변경에도 항상 텍스트 수직 중앙 유지.
     .xm .btnArea .btn(특이성 0,4,0)이 display:inline-block을 강제해서 !important 필요 */
  display:inline-flex !important; align-items:center !important; justify-content:center !important; height:30px !important; box-sizing:border-box; line-height:1;
  background:var(--control-bg) !important; border:1px solid var(--control-border) !important;
  color:var(--ink-soft) !important; opacity:1 !important;
  padding:0 14px; border-radius:var(--radius); font-size:0.85rem; margin-right:6px; cursor:pointer;
}
.nightflight-theme .xm button:hover,
.nightflight-theme .xm input[type="submit"]:hover,
.nightflight-theme .xm .btn:hover{ color:var(--ink) !important; border-color:var(--muted) !important; }
/* 현재 선택된 탭(활성 상태)으로 보이는 버튼 강조 */
.nightflight-theme .xm .btn.selected,
.nightflight-theme .xm .btn.active,
.nightflight-theme .xm button.selected,
.nightflight-theme .xm button.active{
  background:var(--indigo-soft) !important; color:var(--indigo) !important; border-color:var(--indigo) !important;
}

.nightflight-theme .section-head{
  position:relative;
  display:flex; justify-content:space-between; align-items:baseline; flex-wrap:nowrap; gap:12px;
  margin-bottom:0; border-bottom:1px solid var(--hairline); padding-bottom:16px;
}
.nightflight-theme .section-title{
  font-size:1.3rem; font-weight:700; letter-spacing:-0.01em; margin:0; min-width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block;
}
.nightflight-theme .section-title .tag{
  font-family:'IBM Plex Mono', monospace; font-size:0.7rem; color:var(--muted);
  font-weight:400; margin-left:10px; white-space:nowrap;
}
.nightflight-theme .more-link{
  flex-shrink:0; display:inline-flex; align-items:center; justify-content:center;
  color:var(--ink-soft); font-size:1.3rem; font-weight:800; line-height:1;
  transition:color .15s; padding:0 2px;
}
.nightflight-theme .more-link:hover{ color:var(--indigo); text-decoration:none; }
/* NIGHTFLIGHT CUSTOM: 게시판 섹션(section-head) 안의 more-link만 헤더 전체로 확장해
   빈 공간 클릭도 이동되게 함. sketch-slider-head 등 다른 곳의 more-link 재사용에는
   영향 없도록 .section-head 안에서만 좁혀서 적용 */
.nightflight-theme .section-head .more-link{
  position:absolute; top:0; left:0; right:0; bottom:16px; justify-content:flex-end; align-items:center;
}

/* ---------- Front page 3-column grid ---------- */
.nightflight-theme .fp-grid{
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; align-items:start;
}
.nightflight-theme .fp-cell--wide{ grid-column:span 2; }

/* ---------- External widget box (SkyView / 태양·달·행성 / 위성영상 등) ---------- */
.nightflight-theme .widget-box{
  margin-top:16px; background:var(--bg-raised); border:1px solid var(--hairline); border-radius:var(--radius);
  padding:18px; min-height:200px; display:flex; align-items:center; justify-content:center; text-align:center;
}
.nightflight-theme .widget-box .widget-placeholder{
  font-family:'IBM Plex Mono', monospace; font-size:0.78rem; color:var(--muted); line-height:1.7; margin:0;
}

/* ---------- 레거시 실기능 위젯 폼 (SkyView / 태양·달·행성 / 위성영상) 공통 ---------- */
.nightflight-theme .widget-box.real-widget{
  align-items:stretch; justify-content:flex-start; text-align:left;
}
.nightflight-theme .real-widget-form{
  width:100%; display:flex; flex-direction:column; gap:12px;
}
.nightflight-theme .rw-field{
  display:flex; flex-direction:row; align-items:center; gap:8px; width:100%;
}
.nightflight-theme .rw-field label{
  font-family:var(--font-primary); font-size:0.8rem; font-weight:600; color:var(--ink);
  flex-shrink:0; min-width:60px;
}
.nightflight-theme .rw-field input[type="text"]{
  flex:0 1 187px; min-width:0; box-sizing:border-box; height:30px; padding:0 8px;
  border:1px solid var(--control-border); border-radius:var(--radius);
  background:var(--control-bg); color:var(--ink);
  font-family:var(--font-primary); font-size:0.78rem;
}
.nightflight-theme .rw-field input[type="text"]::placeholder{ color:var(--muted); }
.nightflight-theme .rw-field-inline{
  flex-direction:row; align-items:center; gap:8px; flex-wrap:wrap;
}
.nightflight-theme .rw-field-inline label{ flex-shrink:0; }
.nightflight-theme .rw-input-xs{ flex:0 0 40px !important; width:40px !important; text-align:center; }
.nightflight-theme .rw-input-sm{ flex:0 0 44px !important; width:44px !important; text-align:center; }
.nightflight-theme .rw-input-md{ flex:0 0 120px !important; width:120px !important; }
.nightflight-theme .rw-x{ color:var(--muted); font-size:0.78rem; flex-shrink:0; }
.nightflight-theme .rw-submit{
  align-self:flex-start;
  height:30px; padding:0 12px; border:none; border-radius:var(--radius);
  background:var(--brand-solid); color:#fff; font-size:0.78rem; font-weight:600;
  font-family:var(--font-primary); cursor:pointer; white-space:nowrap; flex-shrink:0;
}
.nightflight-theme .rw-submit:hover{ background:var(--brand-solid-hover); }
/* NIGHTFLIGHT CUSTOM: 태양/달/행성 위젯은 라벨이 짧아(경도/위도/고도 등) 균일 min-width 대신
   실제 글자 너비만 차지하도록 조정 -> 입력창이 라벨에 더 붙어 보임 */
#sunmoon-widget .rw-field label{ min-width:0; white-space:nowrap; }
/* NIGHTFLIGHT CUSTOM: 태양/달/행성 모달 - 게시판 chip과 동일한 pill 디자인의 커스텀 셀렉트 */
.nightflight-theme .rw-select{
  height:30px; padding:0 26px 0 10px; border:1px solid var(--control-border); border-radius:var(--radius);
  background-color:var(--control-bg); color:var(--ink);
  font-family:var(--font-primary); font-size:0.78rem;
  appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2352525b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 8px center;
}
.nightflight-theme .rw-select-mon{ width:78px; }
.nightflight-theme .rw-select-day{ width:62px; }
.nightflight-theme .rw-select-year{ width:82px; }
.nightflight-theme .rw-select-dir{ width:106px; }
.nightflight-theme .rw-today{
  height:30px; padding:0 14px; border:1px solid var(--control-border); border-radius:var(--radius);
  background:rgba(139,143,151,0.16); color:var(--ink); font-family:var(--font-primary); font-size:0.78rem; font-weight:600;
  cursor:pointer; white-space:nowrap; flex-shrink:0;
}
.nightflight-theme .rw-today:hover{ background:rgba(139,143,151,0.26); }
.nightflight-theme .rw-divider{ width:1px; height:18px; background:var(--hairline); flex-shrink:0; }
#nf-modal-planet .rw-field-row1{ display:flex; align-items:center; justify-content:space-between; gap:0; }
#nf-modal-planet .rw-select-mon{ width:88px; }
#nf-modal-planet .rw-select-day{ width:68px; }
#nf-modal-planet .rw-select-year{ width:92px; }
#nf-modal-planet .rw-field-row23{ display:flex; align-items:center; gap:12px; }
#nf-modal-planet .rw-group-grow{ display:flex; align-items:center; gap:8px; flex:1 1 auto; min-width:0; }
#nf-modal-planet .rw-field-row23 input.rw-input-md{ flex:1 1 auto !important; width:auto !important; min-width:0; }
#nf-modal-planet .rw-group{ display:inline-flex; align-items:center; gap:8px; }
#nf-modal-planet .rw-field-row4{ display:flex; align-items:center; gap:8px; }
#nf-modal-planet .rw-push-right{ margin-left:auto; }
#nf-modal-skyview .rw-field input.rw-input-grow{ flex:1 1 auto; width:auto; }
#nf-modal-skyview .rw-input-deg{ width:50px !important; flex:0 0 auto; }
#nf-modal-skyview .rw-push-right{ margin-left:auto; }
#nf-modal-skyview .rw-group{ display:inline-flex; align-items:center; gap:8px; }
#nf-modal-skyview .rw-group .rw-input-sm{ flex:0 0 52px !important; width:52px !important; }




/* ---------- Catalog card (자작정보) ---------- */
.nightflight-theme .catalog-grid{
  margin-top:16px;
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1px;
  background:var(--hairline); border:1px solid var(--hairline);
}
.nightflight-theme .card{
  background:var(--bg-raised); padding:22px 22px 20px; display:flex; flex-direction:column; gap:12px;
  transition:background .15s;
}
.nightflight-theme .card:hover{ background:var(--card-hover); }
.nightflight-theme .card-id{
  font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:var(--amber);
  letter-spacing:0.03em;
}
.nightflight-theme .card-title{
  font-size:1.02rem; font-weight:600; line-height:1.45; margin:0; letter-spacing:-0.01em;
}
.nightflight-theme .card-excerpt{
  font-family:var(--font-primary); font-size:0.92rem; color:var(--ink-soft);
  line-height:1.65; margin:0; flex-grow:1;
}
.nightflight-theme .card-meta{
  display:flex; justify-content:space-between; align-items:center;
  font-family:'IBM Plex Mono', var(--font-primary), monospace; font-size:0.72rem; color:var(--muted);
  padding-top:10px; border-top:1px solid var(--hairline);
}
.nightflight-theme .card-meta .comments{ color:var(--indigo); }

/* ---------- NEW 배지 (대문 위젯 공통) ---------- */
.nightflight-theme .badge-new{
  display:inline-flex; align-items:center; height:16px; padding:0 5px; flex-shrink:0;
  background:#3FA34D; color:#fff; border-radius:3px;
  font-family:'IBM Plex Mono', monospace; font-size:0.62rem; font-weight:700; letter-spacing:0.04em;
}
.nightflight-theme .card-id-row{ display:flex; align-items:center; gap:6px; }
.nightflight-theme .photo-card .badge-new{ position:absolute; top:8px; left:8px; z-index:1; }


/* ---------- List rows ---------- */
.nightflight-theme .row-list{ display:flex; flex-direction:column; }
.nightflight-theme .row-item{
  display:grid; grid-template-columns: minmax(0,1fr) auto; gap:6px; align-items:baseline;
  padding:10px 0; border-bottom:1px solid var(--hairline); overflow:hidden;
  position:relative;
}
.nightflight-theme .row-item-link{
  position:absolute; inset:0; z-index:1;
}
.nightflight-theme .row-item:hover .row-item-link ~ .row-title-line .row-title{ color:var(--indigo); }
.nightflight-theme .row-comments{
  position:relative; z-index:2;
}
/* NIGHTFLIGHT: 날짜는 마크업 보존, 화면에서만 숨김 (복원하려면 이 규칙과 위 grid-template-columns 조정만 되돌리면 됨) */
.nightflight-theme .row-date{ display:none; }
.nightflight-theme .row-item:hover .row-title{ color:var(--indigo); }
.nightflight-theme .row-date{ font-family:'IBM Plex Mono', monospace; font-size:0.76rem; color:var(--muted); white-space:nowrap; }
.nightflight-theme .row-title-line{ display:flex; align-items:baseline; gap:6px; min-width:0; }
.nightflight-theme .row-title{
  font-size:0.86rem; font-weight:500; transition:color .15s;
  min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.nightflight-theme .row-author{ font-size:0.82rem; color:var(--muted); white-space:nowrap; }
.nightflight-theme .row-comments{
  font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:var(--headline-accent); white-space:nowrap; flex-shrink:0;
}

/* ---------- Photo essay strip ---------- */
.nightflight-theme .photo-strip{
  margin-top:16px;
  display:grid; grid-template-columns:repeat(4, 1fr); gap:14px;
}
.nightflight-theme .photo-card{ position:relative; aspect-ratio:4/3; border-radius:4px; overflow:hidden; background:var(--indigo-soft); }
.nightflight-theme .photo-card{ color:inherit; text-decoration:none; }
.nightflight-theme .photo-card .ph-caption{
  position:absolute; left:0; right:0; bottom:0; top:40%; padding:12px 14px;
  display:flex; align-items:flex-end;
  background:linear-gradient(180deg, transparent, var(--overlay-strong));
  color:#fff; font-size:0.82rem; font-weight:500;
}
.nightflight-theme .photo-placeholder{
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  font-family:'IBM Plex Mono', monospace; font-size:0.7rem; color:var(--indigo); opacity:0.55;
}

/* ---------- Footer ---------- */
.nightflight-theme footer{
  border-top:1px solid var(--hairline); padding:18px 0 36px; background:var(--bg-raised);
}
.nightflight-theme footer .wrap{ padding:0 28px; }
@media (max-width: 480px){
  .nightflight-theme footer .wrap{ padding:0 16px; }
}
.nightflight-theme .footer-tagline{
  font-family:'Space Grotesk', sans-serif; font-size:1.05rem; font-weight:600; color:var(--ink);
  margin:0 0 8px; text-align:left;
}
.nightflight-theme .footer-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.nightflight-theme .footer-copy{ font-family:'IBM Plex Mono', monospace; font-size:0.74rem; color:var(--muted); }
.nightflight-theme .footer-links{ display:flex; gap:20px; }
.nightflight-theme .footer-links a{ font-size:0.8rem; color:var(--ink-soft); }
.nightflight-theme .footer-links a:hover{ color:var(--indigo); }

@media (prefers-reduced-motion: reduce){
  .nightflight-theme *{ scroll-behavior:auto !important; transition:none !important; }
}

@media (max-width: 880px){
  /* NIGHTFLIGHT CUSTOM: 모바일에서는 검색창을 아이콘으로 축소, 클릭 시에만 확장 */
  .nightflight-theme .site-search{ width:34px; height:34px; position:relative; }
  .nightflight-theme .site-search-input{
    position:absolute; right:0; top:0; width:0; padding:0; opacity:0;
    pointer-events:none; border-color:transparent;
    transition:width .2s ease, opacity .15s ease, padding .2s ease, border-color .15s ease;
  }
  .nightflight-theme .site-search.open .site-search-input{
    width:160px; padding:0 36px 0 12px; opacity:1; pointer-events:auto;
    border-color:var(--control-border);
  }
  .nightflight-theme .site-search-toggle{
    position:absolute; right:0; top:0; width:34px; height:34px;
    border:1px solid var(--control-border); border-radius:4px; background:var(--control-bg);
  }

  .nightflight-theme nav{ display:none; }
  .nightflight-theme .main-nav{ display:none; }
  .nightflight-theme .theme-toggle{ display:none; }
  .nightflight-theme .header-actions .btn-ghost,
  .nightflight-theme .header-actions .btn-solid{ display:none; }
  .nightflight-theme .nav-toggle{ display:flex; }
  .nightflight-theme .mobile-nav{ display:block; }
  .nightflight-theme .nav-backdrop{ display:block; }
  .nightflight-theme .site-header{ transition:transform .25s ease; }
  .nightflight-theme .site-header.header-hidden{ transform:translateY(-100%); }

  /* NIGHTFLIGHT CUSTOM: 헤더가 스크롤로 숨겨지면(header-hidden) 그 자리가 빈 공간이 되어
     에디터 툴바(sticky top:var(--header-height)) 위쪽으로 스크롤 중인 본문이 비쳐 보이는 문제 방지.
     헤더와 에디터는 .nightflight-theme의 형제 서브트리이므로 일반 형제 선택자로 감지해
     헤더가 숨겨진 동안엔 툴바를 화면 맨 위(top:0)까지 당겨 틈을 없앤다. */
  .nightflight-theme .site-header.header-hidden ~ .site-shell .rx_ddgg_editor .ddgg-toolbar{
    top: 0;
  }
}

@media (max-width: 880px){
  .nightflight-theme .masthead-inner{ grid-template-columns:1fr; padding-bottom:6px; } /* NIGHTFLIGHT CUSTOM: fp-grid 상단 패딩(6px)과 합쳐 12px로, fp-grid 내부 gap과 통일 */
  .nightflight-theme .headline{ font-size:2rem; }
  .nightflight-theme .fp-grid{ grid-template-columns:1fr; gap:12px; }
  .nightflight-theme .fp-cell--wide{ grid-column:span 1; }
  .nightflight-theme .fp-widget{ order:9; }
  .nightflight-theme .catalog-grid{ grid-template-columns:1fr; }
  .nightflight-theme .photo-strip{ grid-template-columns:repeat(2, 1fr); }
  .nightflight-theme .obs-panel-toggle{ flex-basis:100%; width:100%; order:2; }
  .nightflight-theme .obs-panel-body-slot{ order:3; }
  .nightflight-theme .sky-strip{
    flex-basis:100%; width:100%; order:1;
    flex-direction:column; align-items:stretch; gap:10px;
    height:auto; padding:20px 18px;
  }
  .nightflight-theme .sky-strip-item{
    white-space:normal; width:100%; font-size:0.9rem;
    justify-content:space-between;
  }
  .nightflight-theme .sky-strip-item .label{
    color:var(--ink-soft); font-family:inherit; font-size:0.9rem;
    text-transform:none; letter-spacing:normal;
  }
  .nightflight-theme .sky-strip-item .val{ text-align:right; }
  .nightflight-theme .obs-panel-left{ width:100%; flex-basis:100%; padding-bottom:14px; border-bottom:1px solid var(--hairline); margin-bottom:2px; }
  .nightflight-theme .obs-day{ min-width:46px; }
  .nightflight-theme .obs-weather-days{ overflow-x:auto; }
  .nightflight-theme .obs-panel-left::after{ display:none; }
}

/* ---------- Rhymix 위젯 출력 wrapper 무력화 (grid 직계자식 유지) ---------- */
.nightflight-theme .catalog-grid .xe-widget-wrapper,
.nightflight-theme .catalog-grid .xe-widget-wrapper > div,
.nightflight-theme .photo-strip .xe-widget-wrapper,
.nightflight-theme .photo-strip .xe-widget-wrapper > div,
.nightflight-theme .row-list .xe-widget-wrapper,
.nightflight-theme .row-list .xe-widget-wrapper > div,
.nightflight-theme .obs-grid .xe-widget-wrapper,
.nightflight-theme .obs-grid .xe-widget-wrapper > div,
.nightflight-theme .masthead-inner .xe-widget-wrapper,
.nightflight-theme .masthead-inner .xe-widget-wrapper > div {
  display: contents;
}

/* NIGHTFLIGHT CUSTOM v2 버그수정: widget-box.real-widget이 flex-direction 기본값(row)이라
   side-widget-group(스카이뷰+태양달행성+위성날씨 3개)이 가로로 밀려나 안 보이던 문제 수정 */
.nightflight-theme .widget-box.side-widget-group{ flex-direction:column; }

@media (max-width: 480px){
  .nightflight-theme .wrap{ padding:0; }
  .nightflight-theme .header-inner{ padding:16px; }
  .nightflight-theme .masthead-inner{ padding:13px 0 6px; } /* NIGHTFLIGHT CUSTOM: 하단 패딩을 fp-grid 상단 패딩(6px)과 합쳐 12px로 맞춰, fp-grid 내부 위젯 간격(gap:12px)과 통일 */
  .nightflight-theme .card{ padding:16px 16px 14px; }
  .nightflight-theme .row-item{ grid-template-columns: minmax(0,1fr) auto; }
}

.nightflight-theme .fp-cell{
  width:100%; box-sizing:border-box; min-width:0;
  border:1px solid var(--hairline); border-radius:8px;
  background:var(--bg-raised);
}
.nightflight-theme .fp-grid section.fp-cell{ padding:28px; }
.nightflight-theme .fp-grid section.fp-cell.fp-cell--triple{ border:none; padding:0; background:none; }
.nightflight-theme .triple-col{
  min-width:0; border:1px solid var(--hairline); border-radius:8px; padding:28px;
  background:var(--bg-raised); box-sizing:border-box;
}
.nightflight-theme .row-list{ min-width:0; }
.nightflight-theme .row-list, .nightflight-theme .catalog-grid, .nightflight-theme .widget-box{ width:100%; box-sizing:border-box; }

/* ============================================================
   NIGHTFLIGHT CUSTOM v2: 대문 위젯 재배치
   - 관측기 전체폭 + 썸네일, 모임공지/자유게시판 2단, 사이드바(스카이뷰+태양달행성+위성날씨) 통합,
     사진에세이+스케치 통합. 관측정보/자작정보는 숨김.
   ============================================================ */
.nightflight-theme .fp-cell--full{ grid-column:1/-1; }
.nightflight-theme #board-triple{ grid-row:1; }
.nightflight-theme #notice{ grid-column:1; grid-row:2; }
.nightflight-theme #free{ grid-column:2; grid-row:2; }
.nightflight-theme #photo{ grid-row:3; }
.nightflight-theme .fp-cell--hidden{ display:none; }
.nightflight-theme .fp-cell--triple{
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px;
}
.nightflight-theme .sketch-slider-col{ grid-column:1/-1; }
.nightflight-theme .sketch-slider-head{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.nightflight-theme .sketch-slider-arrows{ display:flex; gap:6px; margin-left:auto; }
.nightflight-theme .slider-arrow{
  width:28px; height:28px; border:1px solid var(--hairline); border-radius:6px;
  background:var(--bg-raised); color:var(--ink-soft); cursor:pointer;
  display:flex; align-items:center; justify-content:center; padding:0;
}
.nightflight-theme .slider-arrow:hover{ color:var(--ink); border-color:var(--muted); }
.nightflight-theme .slider-arrow svg{ width:16px; height:16px; }
.nightflight-theme .sketch-track-wrap{ overflow-x:auto; overflow-y:hidden; scroll-behavior:smooth; scrollbar-width:thin; padding-bottom:4px; }
.nightflight-theme .sketch-track{ display:flex; gap:12px; }
.nightflight-theme .sketch-track .xe-widget-wrapper,
.nightflight-theme .sketch-track .xe-widget-wrapper > div{ display:contents; }
.nightflight-theme .sketch-track .webzine-item{
  flex:0 0 220px; border:1px solid var(--hairline); border-radius:8px;
  padding:12px; margin:0; border-bottom:1px solid var(--hairline);
  flex-direction:column; align-items:flex-start; gap:10px;
}
.nightflight-theme .sketch-track .webzine-thumb{ width:100%; height:120px; border-radius:6px; }
.nightflight-theme .sketch-track .webzine-meta{ width:100%; }
@media (max-width: 880px){
  .nightflight-theme #notice, .nightflight-theme #free, .nightflight-theme #photo{ grid-column:auto; grid-row:auto; }
  .nightflight-theme .fp-cell--triple{ grid-template-columns:1fr; gap:12px; }
  .nightflight-theme .sketch-slider-col{ grid-column:1; }
}

.nightflight-theme .obs-grid{
  margin-top:16px; display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:16px;
}
.nightflight-theme .obs-card{ display:flex; flex-direction:column; gap:8px; color:inherit; text-decoration:none; }
.nightflight-theme .obs-date{ display:none; }
.nightflight-theme .obs-title-line{ display:flex; align-items:center; gap:6px; min-width:0; }
.nightflight-theme .obs-thumb{
  width:100%; height:140px; border-radius:var(--radius); overflow:hidden;
  background:var(--bg-raised); border:1px solid var(--hairline);
  display:flex; align-items:center; justify-content:center;
}
.nightflight-theme .fp-cell--sidebar .widget-box{ margin-top:0; }
.nightflight-theme .essay-split{ display:flex; flex-direction:column; gap:40px; }
.nightflight-theme .obs-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.nightflight-theme .obs-thumb .obs-thumb-empty{ font-size:1.4rem; color:var(--muted); }
.nightflight-theme .obs-title{
  font-size:0.86rem; font-weight:500; margin:0; line-height:1.4; min-width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  color:inherit; text-decoration:none; display:block;
}
.nightflight-theme .obs-meta{ font-family:var(--font-primary); font-size:13px; font-weight:600; color:var(--muted); }

.nightflight-theme .side-widget-group .side-sub{ padding-top:20px; margin-top:20px; border-top:1px solid var(--hairline); }
.nightflight-theme .side-widget-group .side-sub:first-child{ padding-top:0; margin-top:0; border-top:none; }
.nightflight-theme .side-widget-group .side-sub .section-head{ padding-bottom:8px; margin-bottom:14px; }
.nightflight-theme .side-widget-group .side-sub-title{ font-size:0.95rem; font-weight:600; margin:0; }
.nightflight-theme .side-widget-group .side-sub-title .tag{
  font-family:'IBM Plex Mono', monospace; font-size:0.7rem; color:var(--muted);
  font-weight:400; margin-left:10px; white-space:nowrap;
}

.nightflight-theme .essay-combined .essay-sub + .essay-sub{ margin-top:32px; }

@media (max-width:880px){
  .nightflight-theme .fp-cell--full,
  .nightflight-theme .fp-cell--sidebar,
  .nightflight-theme .fp-cell--essay{ grid-column:1; grid-row:auto; }
  .nightflight-theme .obs-grid{ grid-template-columns:1fr; gap:0; }
  .nightflight-theme .obs-thumb{ display:none; }
  .nightflight-theme .obs-card{
    display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:baseline; gap:8px;
    padding:10px 0; border-bottom:1px solid var(--hairline);
  }
  .nightflight-theme .obs-date{ display:block; font-family:'IBM Plex Mono', monospace; font-size:0.78rem; color:var(--muted); }
  .nightflight-theme .obs-title{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .nightflight-theme .obs-meta{ white-space:nowrap; }
}

/* NIGHTFLIGHT CUSTOM: 에디터 파일첨부 영역이 OS 다크모드(cke_auto_dark_mode)를 자체 감지해서
   사이트 자체 다크모드 토글과 무관하게 라이트로 나오는 문제 수정 (모바일에서 특히 발생) */
body.color_scheme_dark .xefu-container { border:1px solid #555; background-color:#222; color:#fff; }
body.color_scheme_dark .xefu-dropzone { background-color:#333; color:#fff; }

/* ============================================
   통합검색(integration_search) 코어 화면 오버라이드
   white.css의 이미지 배경/고정폭 스타일을 제거하고
   디자인 시스템 변수로 재구성
   ============================================ */

/* 검색창 */
#spot{ margin:0 0 24px 0; }
#spot .search{ display:flex; gap:8px; max-width:480px; margin:0; padding:0; }
#spot .search input[type="text"]{
  flex:1; min-width:0;
  height:44px; padding:0 16px;
  border:1px solid var(--control-border);
  border-radius:var(--radius);
  background:var(--control-bg);
  color:var(--ink);
  font-size:15px; font-weight:500;
  font-family:var(--font-primary);
  vertical-align:top; line-height:normal;
}
#spot .search input[type="text"]:focus{
  outline:none; border-color:var(--brand-solid);
}
#spot .search input[type="submit"]{
  height:44px; padding:0 20px;
  background:var(--brand-solid);
  border:none; border-radius:var(--radius);
  color:#fff; font-size:14px; font-weight:600;
  cursor:pointer; box-shadow:none;
  transition:background .15s ease;
  vertical-align:top; line-height:normal;
}
#spot .search input[type="submit"]:hover{ background:var(--brand-solid-hover); }

/* 메인 탭 (통합검색/문서/댓글/이미지동영상/파일) */
.localNavigation{
  display:flex; gap:4px;
  border-bottom:1px solid var(--hairline);
  margin:0 0 24px 0; padding:0;
}
.localNavigation li{ background:none; float:none; margin:0; padding:0; }
.localNavigation li a{
  display:inline-block; float:none;
  background:none; border:none;
  padding:10px 16px; height:auto;
  color:var(--ink-soft); font-size:14px; font-weight:500;
  border-bottom:2px solid transparent;
  transition:color .15s ease, border-color .15s ease;
}
.localNavigation li a:hover{ color:var(--ink); }
.localNavigation li.on{ margin-bottom:0; }
.localNavigation li.on a{
  height:auto; background:none;
  color:var(--brand-solid); font-weight:700;
  border-bottom-color:var(--brand-solid);
}

/* 서브 탭 (제목+내용/제목/내용/태그) */
.subNavigation{
  border-bottom:1px solid var(--hairline);
  margin:0 0 20px 0; padding:0 0 12px 0;
}
.subNavigation li a{
  color:var(--muted); font-size:13px;
  border-right:1px solid var(--hairline);
  padding:0 12px 0 0; margin-right:12px;
}
.subNavigation li.last a{ border-right:0; }
.subNavigation li.on a{ color:var(--ink); font-weight:700; }

/* 결과 섹션 제목 */
h3.subTitle{
  background:none; padding:0;
  margin:16px 0 20px 0;
  color:var(--ink); font-size:16px; font-weight:600;
  font-family:'Space Grotesk', sans-serif;
}
h3.subTitle span{ color:var(--muted); font-family:'IBM Plex Mono', monospace; font-size:12px; }

/* 결과 리스트 */
.searchResult li .thumb{ border:1px solid var(--hairline); border-radius:var(--radius); padding:0; }
.searchResult li dl dt{ color:var(--ink); }
.searchResult li dl dt a{ color:var(--ink); text-decoration:none; font-weight:600; }
.searchResult li dl dt a:hover{ color:var(--brand-solid); text-decoration:underline; }
.searchResult.comment li dl dt a{ color:var(--ink-soft); }
.searchResult li dl dt .reply,
.searchResult li dl dt .reply em{ color:var(--amber); font-family:'IBM Plex Mono', monospace; }
.searchResult li dl dt .category,
.searchResult li dl dt .category a{ color:var(--muted); }
.searchResult li dl dd{ color:var(--ink-soft); line-height:1.6; }
.searchResult li address{ color:var(--muted); font-family:'IBM Plex Mono', monospace; font-size:12px; }
.searchResult li address strong{ color:var(--ink-soft); font-weight:600; }
.searchResult li address .time,
.searchResult li address .read,
.searchResult li address .readNum,
.searchResult li address .recom{ color:var(--muted); }
.searchResult li address .recomNum{ color:var(--amber); font-weight:700; }

.noResult{ color:var(--ink-soft); border-bottom-color:var(--hairline); }
strong.noKeyword{ color:var(--ink); }
div.isMore{ color:var(--ink-soft); border-bottom-color:var(--hairline); }
div.isMore a{ color:var(--brand-solid); }

/* 페이지네이션 */
.pagination.a1 a,
.pagination.a1 strong{
  background:none; border:none;
  border-left:1px solid var(--hairline);
  border-right:1px solid var(--hairline);
  color:var(--ink-soft); font-family:'IBM Plex Mono', monospace;
}
.pagination.a1 a:hover{ background:var(--card-hover) !important; color:var(--ink); }
.pagination.a1 strong{ color:var(--brand-solid) !important; font-weight:700; }
.pagination.a1 a.prev,
.pagination.a1 a.prevEnd,
.pagination.a1 a.next,
.pagination.a1 a.nextEnd{ background:none !important; }

/* 모바일: 검색창 풀폭 */
@media (max-width:600px){
  #spot .search{ max-width:100%; }
  .localNavigation{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .localNavigation li a{ white-space:nowrap; padding:10px 12px; font-size:13px; }
}

/* ============================================
   통합검색 우선순위 강화 (white.css 로드 순서 문제 해결용)
   .nightflight-theme 래퍼를 붙여 specificity를 높임
   ============================================ */
.nightflight-theme #spot { margin:9px 0 24px 0; }
.nightflight-theme #spot .search { display:flex; gap:8px; max-width:480px; margin:0; padding:0; }
.nightflight-theme #spot .search input[type="text"] {
  flex:1; min-width:0;
  height:44px; padding:0 16px;
  border:1px solid var(--control-border);
  border-radius:var(--radius);
  background:var(--control-bg);
  color:var(--ink);
  font-size:15px; font-weight:500;
  font-family:var(--font-primary);
  vertical-align:top; line-height:normal;
}
.nightflight-theme #spot .search input[type="text"]:focus {
  outline:none; border-color:var(--brand-solid);
}
.nightflight-theme #spot .search input[type="submit"] {
  height:44px; padding:0 20px;
  background:var(--brand-solid);
  border:none; border-radius:var(--radius);
  color:#fff; font-size:14px; font-weight:600;
  cursor:pointer; box-shadow:none;
  transition:background .15s ease;
  vertical-align:top; line-height:normal;
}
.nightflight-theme #spot .search input[type="submit"]:hover { background:var(--brand-solid-hover); }

.nightflight-theme .localNavigation {
  display:flex; gap:4px;
  border-bottom:1px solid var(--hairline);
  margin:0 0 24px 0; padding:0;
}
.nightflight-theme .localNavigation li { background:none; float:none; margin:0; padding:0; }
.nightflight-theme .localNavigation li a {
  display:inline-block; float:none;
  background:none; border:none;
  padding:10px 16px; height:auto;
  color:var(--ink-soft); font-size:14px; font-weight:500;
  border-bottom:2px solid transparent;
  transition:color .15s ease, border-color .15s ease;
}
.nightflight-theme .localNavigation li a:hover { color:var(--ink); }
.nightflight-theme .localNavigation li.on { margin-bottom:0; }
.nightflight-theme .localNavigation li.on a {
  height:auto; background:none;
  color:var(--brand-solid); font-weight:700;
  border-bottom-color:var(--brand-solid);
}

.nightflight-theme .subNavigation {
  border-bottom:1px solid var(--hairline);
  margin:0 0 20px 0; padding:0 0 12px 0;
}
.nightflight-theme .subNavigation li a {
  color:var(--muted); font-size:13px;
  border-right:1px solid var(--hairline);
  padding:0 12px 0 0; margin-right:12px;
}
.nightflight-theme .subNavigation li.last a { border-right:0; }
.nightflight-theme .subNavigation li.on a { color:var(--ink); font-weight:700; }

/* ============================================
   member(.xm) / communication(.xc) 모듈 공통 오버라이드
   페이지네이션, 폼 컨트롤, 다크모드 대응
   ============================================ */

.nightflight-theme .xm .pagination ul>.disabled>a,
.nightflight-theme .xc .pagination ul>.disabled>a{
  color:var(--muted); background:transparent;
}

/* 쪽지함/친구보기 폼 컨트롤 (검색창, select, 버튼) 높이·색상 통일 */
.nightflight-theme .xc input[type="text"],
.nightflight-theme .xc select,
.nightflight-theme .xc input[type="file"]{
  height:30px; box-sizing:border-box;
  padding:0 12px; line-height:30px;
  border:1px solid var(--control-border);
  border-radius:var(--radius);
  background:var(--control-bg);
  color:var(--ink);
  font-size:13px;
  vertical-align:middle;
  box-shadow:none;
}
.nightflight-theme .xc input[type="text"]:focus,
.nightflight-theme .xc select:focus{
  outline:none; border-color:var(--brand-solid); box-shadow:none;
}
.nightflight-theme .xc .btn,
.nightflight-theme .xc button[type="button"],
.nightflight-theme .xc button[type="submit"],
.nightflight-theme .xc input[type="submit"]{
/* NIGHTFLIGHT CUSTOM: 입력칸/버튼 높이 30px로 통일 (.xm, .xc 공통) */
  height:30px !important; box-sizing:border-box;
  padding:0 14px; line-height:28px;
  border:1px solid var(--control-border);
  border-radius:var(--radius);
  background:var(--control-bg);
  color:var(--ink);
  font-size:13px; font-weight:600;
  cursor:pointer; vertical-align:middle;
}
.nightflight-theme .xc .btn:hover,
.nightflight-theme .xc button:hover{
  background:var(--card-hover);
}
/* 현재 선택된 탭(받은쪽지함 등)은 인라인 font-weight:bold로 표시됨 */
.nightflight-theme .xc .btn[style*="font-weight:bold"]{
  background:var(--indigo-soft);
  border-color:var(--brand-solid);
  color:var(--brand-solid);
}

/* 쪽지함/친구보기 테이블 다크모드 대응 */
.nightflight-theme .xc table,
.nightflight-theme .xc th,
.nightflight-theme .xc td{
  color:var(--ink);
  border-color:var(--hairline) !important;
}
.nightflight-theme .xc .table-striped tbody>tr:nth-child(odd)>td{
  background:var(--card-hover);
}
.nightflight-theme .xc .table-hover tbody tr:hover>td{
  background:var(--indigo-soft);
}
.nightflight-theme .xc a{
  color:var(--brand-solid);
}
.nightflight-theme .xc a.member_*{
  color:var(--ink);
}

/* ============================================
   communication(.xc) 모듈 - 나머지 탭(.xm)과 톤 통일
   ============================================ */

/* 받은쪽지함/보낸쪽지함/보관함/읽지않은쪽지함 - 밑줄탭 스타일로 통일 */
.nightflight-theme .xc .btnArea .btn-group{
  display:flex; gap:4px; float:none !important;
}
.nightflight-theme .xc .btnArea .btn-group a.btn{
  height:auto; padding:8px 4px; margin:0;
  background:none; border:none;
  border-bottom:2px solid transparent;
  border-radius:0;
  color:var(--ink-soft); font-weight:500 !important;
}
.nightflight-theme .xc .btnArea .btn-group a.btn:hover{
  color:var(--ink); background:none;
}
.nightflight-theme .xc .btnArea .btn-group a.btn[style*="font-weight:bold"]{
  color:var(--brand-solid); font-weight:700 !important;
  border-bottom-color:var(--brand-solid);
  background:none;
}

/* 본문 링크(제목/닉네임) - 링크 기본색 대신 잉크색, hover에만 강조 */
.nightflight-theme .xc td a,
.nightflight-theme .xc dt a,
.nightflight-theme .xc address a{
  color:var(--ink); text-decoration:none;
}
.nightflight-theme .xc td a:hover,
.nightflight-theme .xc dt a:hover{
  color:var(--brand-solid); text-decoration:underline;
}

/* 검색줄 정렬 - form 전체를 flex로 묶어 기준선 통일 */
.nightflight-theme .xc .pagination form{
  display:flex; align-items:center; gap:8px; float:none !important;
}
.nightflight-theme .xc .pagination{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px;
}
.nightflight-theme .xc .pagination select,
.nightflight-theme .xc .pagination input[type="text"],
.nightflight-theme .xc .pagination button,
.nightflight-theme .xc .pagination .btn{
  margin:0; vertical-align:middle;
}
.nightflight-theme .xc .pagination ul{
  margin:0 !important; float:none !important;
}

/* 상단 수신설정 줄(allow_message)도 동일하게 정렬 */
.nightflight-theme .xc .btnArea form{
  display:flex; align-items:center; gap:8px; float:none !important;
}
.nightflight-theme .xc .btnArea{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
}

/* 친구보기 상단 버튼줄도 동일 톤 */
.nightflight-theme .xc .btnArea .etc,
.nightflight-theme .xc .btnArea .btn-group.__submit_group{
  display:flex; align-items:center; gap:8px;
}
.nightflight-theme .xc h1{
  color:var(--ink); font-family:'Space Grotesk', sans-serif;
  font-size:18px; font-weight:600; margin:0 0 16px 0;
}

/* ============================================
   member(.xm) / communication(.xc) 공통 상단 탭 메뉴
   .xm .nav-tabs, .xc .nav-tabs를 하나로 통일
   ============================================ */
.nightflight-theme .xm .nav-tabs,
.nightflight-theme .xc .nav-tabs{
  display:flex; flex-wrap:wrap; gap:4px;
  border-bottom:1px solid var(--hairline);
  margin:0 0 24px 0; padding:0;
}
.nightflight-theme .xm .nav-tabs>li,
.nightflight-theme .xc .nav-tabs>li{
  float:none; margin:0;
}
.nightflight-theme .xm .nav-tabs>li>a,
.nightflight-theme .xc .nav-tabs>li>a{
  display:inline-block;
  padding:10px 16px;
  border:none; border-radius:0;
  border-bottom:2px solid transparent;
  color:var(--ink-soft); font-size:14px; font-weight:500;
  background:none;
  transition:color .15s ease, border-color .15s ease;
}
.nightflight-theme .xm .nav-tabs>li>a:hover,
.nightflight-theme .xc .nav-tabs>li>a:hover{
  color:var(--ink); background:none; border-color:transparent transparent transparent;
}
.nightflight-theme .xm .nav-tabs>.active>a,
.nightflight-theme .xm .nav-tabs>.active>a:hover,
.nightflight-theme .xc .nav-tabs>.active>a,
.nightflight-theme .xc .nav-tabs>.active>a:hover{
  color:var(--brand-solid); font-weight:700;
  background:none;
  border-color:transparent transparent var(--brand-solid);
}

/* ============================================
   member(.xm)/communication(.xc) 상단 탭 최종 고정
   - 호버 시 크기 변화 방지 (border 두께 항상 동일)
   - 라이트/다크 모드 색상 완전 통일
   ============================================ */
.nightflight-theme .xm .nav-tabs>li>a,
.nightflight-theme .xc .nav-tabs>li>a{
  box-sizing:border-box !important;
  border:2px solid transparent !important;
  border-radius:0 !important;
  background:none !important;
  color:var(--ink-soft) !important;
  font-weight:500 !important;
}
.nightflight-theme .xm .nav-tabs>li>a:hover,
.nightflight-theme .xc .nav-tabs>li>a:hover{
  border-color:transparent transparent transparent !important;
  color:var(--ink) !important;
  background:none !important;
}
.nightflight-theme .xm .nav-tabs>.active>a,
.nightflight-theme .xm .nav-tabs>.active>a:hover,
.nightflight-theme .xm .nav-tabs>.active>a:focus,
.nightflight-theme .xc .nav-tabs>.active>a,
.nightflight-theme .xc .nav-tabs>.active>a:hover,
.nightflight-theme .xc .nav-tabs>.active>a:focus{
  border-color:transparent transparent var(--brand-solid) !important;
  color:var(--brand-solid) !important;
  font-weight:700 !important;
  background:none !important;
  cursor:default;
}

/* ============================================
   쪽지 상세보기 테이블 얼룩무늬 배경 - th 누락 수정
   ============================================ */
.nightflight-theme .xc .table-striped tbody>tr:nth-child(odd)>th,
.nightflight-theme .xc .table-striped tbody>tr:nth-child(odd)>td{
  background:var(--card-hover) !important;
}
.nightflight-theme .xc .table th,
.nightflight-theme .xc .table td{
  color:var(--ink) !important;
}

/* ============================================
   member(.xm)/communication(.xc) 페이지네이션
   게시판(ddgg-pager)과 완전히 동일한 시각 스타일로 통일
   ============================================ */
.nightflight-theme .xm .pagination,
.nightflight-theme .xc .pagination{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:4px; margin:24px 0 0 0; padding:0;
  box-shadow:none;
}
.nightflight-theme .xm .pagination ul,
.nightflight-theme .xc .pagination ul{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:4px; margin:0 !important; padding:0;
  box-shadow:none; border-radius:0; background:none;
}
.nightflight-theme .xm .pagination ul>li,
.nightflight-theme .xc .pagination ul>li{
  display:inline-flex; float:none;
}
.nightflight-theme .xm .pagination ul>li>a,
.nightflight-theme .xm .pagination ul>li>span,
.nightflight-theme .xc .pagination ul>li>a,
.nightflight-theme .xc .pagination ul>li>span{
  min-width:32px; height:32px; padding:0 8px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--hairline) !important;
  background:var(--bg-raised) !important;
  color:var(--ink-soft) !important;
  border-radius:var(--radius) !important;
  font-size:12.5px; font-weight:600;
  font-variant-numeric:tabular-nums;
  box-sizing:border-box;
  text-decoration:none;
}
.nightflight-theme .xm .pagination ul>li>a:hover,
.nightflight-theme .xc .pagination ul>li>a:hover{
  background:var(--card-hover) !important;
  color:var(--ink) !important;
}
.nightflight-theme .xm .pagination ul>.active>a,
.nightflight-theme .xm .pagination ul>.active>span,
.nightflight-theme .xc .pagination ul>.active>a,
.nightflight-theme .xc .pagination ul>.active>span{
  background:var(--ink) !important;
  color:var(--bg) !important;
  border-color:var(--ink) !important;
  cursor:default;
}

/* ============================================
   로그인 폼(.xm .signin) 디자인 시스템 적용
   ============================================ */
.nightflight-theme .xm .signin{
  width:400px; max-width:100%;
  margin:60px auto;
  background:var(--bg-raised) !important;
  border:1px solid var(--hairline) !important;
  border-radius:12px !important;
  box-shadow:0 4px 20px var(--overlay-strong) !important;
}
.nightflight-theme .xm .signin>.login-header{
  padding:20px 24px;
  border-bottom:1px solid var(--hairline) !important;
}
.nightflight-theme .xm .signin>.login-header>h1{
  color:var(--ink) !important;
  font-family:'Space Grotesk', sans-serif;
  font-size:18px; font-weight:600;
}
.nightflight-theme .xm .signin>.login-header>h1>i{
  display:none;
}
.nightflight-theme .xm .signin>.login-body{
  padding:24px; max-height:none;
}
.nightflight-theme .xm .signin input[type="text"],
.nightflight-theme .xm .signin input[type="email"],
.nightflight-theme .xm .signin input[type="password"]{
  height:44px; box-sizing:border-box;
  padding:0 14px; margin-bottom:12px;
  border:1px solid var(--control-border) !important;
  border-radius:var(--radius) !important;
  background:var(--control-bg) !important;
  color:var(--ink) !important;
  font-size:14px;
  box-shadow:none !important;
}
.nightflight-theme .xm .signin input[type="text"]:focus,
.nightflight-theme .xm .signin input[type="email"]:focus,
.nightflight-theme .xm .signin input[type="password"]:focus{
  outline:none; border-color:var(--brand-solid) !important; box-shadow:none !important;
}
.nightflight-theme .xm .signin label{
  color:var(--ink-soft) !important;
  font-size:13px;
}
.nightflight-theme .xm .signin #warning{
  color:var(--muted); font-size:12px;
}
.nightflight-theme .xm .signin .submit{
  position:static !important;
  width:100%; height:44px; margin-top:12px;
  background:var(--brand-solid) !important;
  border:none !important; border-radius:var(--radius) !important;
  color:#fff !important; font-weight:600; font-size:14px;
  cursor:pointer;
}
.nightflight-theme .xm .signin .submit:hover{
  background:var(--brand-solid-hover) !important;
}
.nightflight-theme .xm .signin>.login-footer{
  padding:16px 24px;
  background:var(--card-hover) !important;
  border-top:1px solid var(--hairline) !important;
  border-radius:0 0 12px 12px;
  color:var(--muted);
}
.nightflight-theme .xm .signin>.login-footer>a{
  color:var(--ink-soft) !important;
}
.nightflight-theme .xm .signin>.login-footer>a:hover{
  color:var(--brand-solid) !important;
}
@media (max-width:480px){
  .nightflight-theme .xm .signin{ margin:20px auto; width:calc(100% - 32px); }
}

/* ============================================
   member(.xm) 폼 입력 필드 전체 통일
   (email/url 타입이 text/password와 다르게 보이는 문제 해결)
   ============================================ */
.nightflight-theme .xm select,
.nightflight-theme .xm textarea,
.nightflight-theme .xm input[type="text"],
.nightflight-theme .xm input[type="password"],
.nightflight-theme .xm input[type="datetime"],
.nightflight-theme .xm input[type="datetime-local"],
.nightflight-theme .xm input[type="date"],
.nightflight-theme .xm input[type="month"],
.nightflight-theme .xm input[type="time"],
.nightflight-theme .xm input[type="week"],
.nightflight-theme .xm input[type="number"],
.nightflight-theme .xm input[type="email"],
.nightflight-theme .xm input[type="url"],
.nightflight-theme .xm input[type="search"],
.nightflight-theme .xm input[type="tel"],
.nightflight-theme .xm input[type="color"]{
  display:inline-block !important;
  height:30px !important;
  box-sizing:border-box !important;
  padding:0 12px !important;
  line-height:30px !important;
  margin-bottom:10px !important;
  vertical-align:middle !important;
  border-radius:var(--radius) !important;
  background:var(--control-bg) !important;
  color:var(--ink) !important;
  border:1px solid var(--control-border) !important;
  box-shadow:none !important;
  font-size:14px !important;
}
.nightflight-theme .xm select:focus,
.nightflight-theme .xm textarea:focus,
.nightflight-theme .xm input[type="text"]:focus,
.nightflight-theme .xm input[type="password"]:focus,
.nightflight-theme .xm input[type="email"]:focus,
.nightflight-theme .xm input[type="url"]:focus,
.nightflight-theme .xm input[type="date"]:focus{
  outline:none !important;
  border-color:var(--brand-solid) !important;
  box-shadow:none !important;
}

/* ============================================
   회원가입 폼 - 입력창 옆 안내문구(.help-inline)/버튼(생일 삭제 등)이
   input의 line-height:30px 기준과 vertical-align:middle만으로는
   시각적으로 살짝 아래로 처져 보이는 문제 수정.
   .controls 전체에 flex를 걸면 라디오 그룹(메일링 가입/쪽지 허용 등)의
   세로 쌓임 레이아웃이 깨지므로, 안내문구나 버튼이 같은 줄에 있는
   경우로 :has()를 통해 한정한다.
   ============================================ */
.nightflight-theme .xm .form-horizontal .controls:has(> .help-inline),
.nightflight-theme .xm .form-horizontal .controls:has(> input[type="button"]){
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap;
  gap:8px;
}
.nightflight-theme .xm .form-horizontal .controls:has(> .help-inline) input,
.nightflight-theme .xm .form-horizontal .controls:has(> input[type="button"]) input{
  margin-bottom:0 !important;
}

/* ============================================
   알림 받기 버튼 - 다크모드 토글과 동일 크기, 오렌지 톤 아이콘 버튼
   ============================================ */
.nightflight-theme .notify-toggle{
  width:34px; height:34px; border-radius:4px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; padding:0;
  border:1px solid var(--amber);
  background:var(--amber-soft);
  color:var(--amber);
}
.nightflight-theme .notify-toggle:hover{
  background:var(--amber);
  color:var(--bg-raised);
}
.nightflight-theme .notify-toggle svg{ width:17px; height:17px; }

/* ============================================
   로그아웃 버튼 - 라이트모드에서 은은하게 구분
   (다크모드는 기존 .btn-solid로 이미 충분히 대비돼서 그대로 둠)
   ============================================ */
html:not([data-theme="dark"]) .nightflight-theme .logout-btn{
  background:var(--indigo-soft) !important;
  color:var(--indigo) !important;
  border-color:var(--indigo-soft) !important;
}
html:not([data-theme="dark"]) .nightflight-theme .logout-btn:hover{
  background:var(--hairline) !important;
  border-color:var(--muted) !important;
}


/* ===== NIGHTFLIGHT v15: 마스트헤드 스트립/버튼/팝업/관측정보패널 ===== */
.nightflight-theme .sky-strip{
  display:flex; align-items:center; gap:0; flex:1 1 220px; min-width:0;
  background:rgba(200,132,42,0.08); border:1px solid var(--hairline); border-radius:8px;
  padding:0 12px; height:44px; box-sizing:border-box;
  /* NIGHTFLIGHT CUSTOM: 시인성 개선(사용자 요청) - 헤더 바 안에서 위젯 자체의 존재감을 높이기 위해
     테두리를 한 단계 더 또렷하게, 은은한 그림자를 추가 (다크모드에선 그림자가 거의 안 보이지만
     테두리 대비만으로도 충분히 구분됨) */
  border-color:var(--amber);
  box-shadow:0 1px 4px rgba(0,0,0,0.06);
}
html[data-theme="dark"] .nightflight-theme .sky-strip{ background:rgba(232,163,61,0.10); }
.nightflight-theme .sky-strip-badge{
  display:inline-flex; align-items:center; gap:3px; color:#fff;
  background:var(--amber); border-radius:9px; padding:3px 7px; flex-shrink:0; line-height:1.3;
}
.nightflight-theme .sky-strip-item .sky-strip-badge .label{
  color:#fff !important; font-family:inherit; font-size:0.68rem; font-weight:600;
  text-transform:uppercase; letter-spacing:0.04em;
}
.nightflight-theme .sky-strip-badge .sky-strip-icon{
  width:11px !important; height:11px !important;
}
.nightflight-theme .sky-strip-badge .sky-strip-icon{ color:#fff; }
.nightflight-theme .val-empty{ color:var(--muted) !important; }
.nightflight-theme .sky-strip-item.is-empty .sky-strip-badge{ background:var(--hairline); }
.nightflight-theme .sky-strip-item.is-empty .sky-strip-badge .label{ color:var(--ink-soft) !important; }
.nightflight-theme .sky-strip-item.is-empty .sky-strip-badge .sky-strip-icon{ color:var(--ink-soft); }
.nightflight-theme .sky-strip-item{
  display:flex; align-items:center; gap:8px; font-size:0.85rem;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;
}
/* NIGHTFLIGHT CUSTOM: 다음 매수팔/다음 관측 사이 구분선 (데스크탑 전용, min-width:881px로 모바일과 확실히 분리) */
@media (min-width:881px){
  .nightflight-theme .sky-strip-item{ flex:1 1 0; }
  .nightflight-theme .sky-strip-item:first-child{ padding-right:10px; border-right:1px solid var(--muted); }
  .nightflight-theme .sky-strip-item:last-child{ padding-left:10px; }
  .nightflight-theme .sky-strip-item .val{ margin-left:auto; }
}
.nightflight-theme .sky-strip-icon{
  /* NIGHTFLIGHT CUSTOM: 시인성 개선(사용자 요청) - 캘린더 아이콘, 값과 같은 포인트 컬러로 통일 */
  color:var(--amber); flex-shrink:0;
}
.nightflight-theme .sky-strip-item .label{
  color:var(--ink-soft); font-family:inherit; font-size:0.8rem; font-weight:600; /* NIGHTFLIGHT CUSTOM: 사이트 기본 폰트로 통일 - Windows에서 monospace 폴백이 이질적으로 보이는 문제 수정 */
  text-transform:uppercase; letter-spacing:0.04em; flex-shrink:0;
}
.nightflight-theme .sky-strip-item .val{
  font-family:inherit; font-weight:600; font-size:0.85rem; color:var(--ink); overflow:hidden; text-overflow:ellipsis; /* NIGHTFLIGHT CUSTOM: 사이트 기본 폰트로 통일, 일정 값은 검은색으로(배지에 포인트 컬러 이관), 글꼴크기 한 단계 축소 */
}
.nightflight-theme .mh-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px; white-space:nowrap;
  background:var(--bg-raised); border:1px solid var(--hairline); border-radius:8px;
  padding:0 16px; font-size:0.82rem; font-weight:500; color:var(--ink-soft); cursor:pointer;
  font-family:inherit; transition:border-color .15s, color .15s;
  height:44px; box-sizing:border-box; min-width:128px;
}
.nightflight-theme .mh-btn:hover{ color:var(--ink); border-color:var(--amber); }
@media (max-width: 1180px){
  .nightflight-theme .mh-btn{ display:none; }
}

.nightflight-theme .nf-modal[hidden]{ display:none; }
.nightflight-theme .nf-modal{
  position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center;
}
.nightflight-theme .nf-modal-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,0.5); }
.nightflight-theme .nf-modal-box{
  position:relative; background:var(--bg-raised); border:1px solid var(--hairline); border-radius:8px;
  padding:0; max-width:400px; width:calc(100% - 40px); max-height:80vh; overflow:auto;
  box-shadow:0 12px 40px rgba(0,0,0,0.35);
}
.nightflight-theme .nf-modal-head{
  display:flex; justify-content:space-between; align-items:center; margin:0;
  padding:14px 20px; background:var(--bg); border-bottom:1px solid var(--hairline);
  border-radius:8px 8px 0 0;
}
.nightflight-theme .nf-modal-head .side-sub-title{ font-size:0.95rem; font-weight:600; margin:0; }
.nightflight-theme .nf-modal-head .side-sub-title .tag{
  font-family:'IBM Plex Mono', var(--font-primary), monospace; font-size:0.66rem; color:var(--muted);
  font-weight:400; margin-left:8px; white-space:nowrap;
}
.nightflight-theme .nf-modal-box > form{ padding:20px 24px; }
.nightflight-theme .nf-modal-x{
  background:none; border:none; font-size:1.4rem; line-height:1; color:var(--ink-soft); cursor:pointer; padding:0 4px;
}
.nightflight-theme .nf-modal-x:hover{ color:var(--ink); }
body.nf-modal-open{ overflow:hidden; }

.nightflight-theme .obs-panel-toggle{
  background:var(--bg-raised); border:1px solid var(--hairline); border-radius:8px;
  display:flex; align-items:stretch; flex:0 0 auto; position:relative;
  height:44px; box-sizing:border-box;
}
.nightflight-theme .obs-panel-toggle[open]{
  border-bottom:none; border-bottom-left-radius:0; border-bottom-right-radius:0;
  z-index:2;
}
.nightflight-theme .obs-panel-toggle[open]::after{
  content:''; position:absolute; left:-1px; right:-1px; top:100%; height:12px;
  background:var(--bg-raised);
  border-left:1px solid var(--hairline); border-right:1px solid var(--hairline);
}
.nightflight-theme .obs-top-line{
  position:absolute; top:-1px; left:var(--nf-toggle-w, 0px); right:0; height:0;
  border-top:1px solid var(--hairline); pointer-events:none;
}
.nightflight-theme .obs-panel-toggle .obs-panel-title{
  display:flex; align-items:center; cursor:pointer; list-style:none;
  padding:0 16px; font-size:0.85rem; font-weight:700; letter-spacing:-0.01em;
  color:var(--ink); white-space:nowrap; width:100%; height:100%; box-sizing:border-box;
}
.nightflight-theme .obs-panel-toggle .obs-panel-title::-webkit-details-marker{ display:none; }
.nightflight-theme .obs-panel-toggle .obs-panel-title::before{
  content:''; display:inline-block; margin-right:10px; width:7px; height:7px;
  border-top:2.5px solid var(--ink); border-right:2.5px solid var(--ink);
  transform:rotate(45deg); transition:transform .15s;
}
.nightflight-theme .obs-panel-toggle[open] .obs-panel-title::before{ transform:rotate(135deg); }

.nightflight-theme .obs-panel-body-slot{ display:none; flex-basis:100%; width:100%; }
.nightflight-theme .obs-panel-toggle[open] ~ .obs-panel-body-slot{ display:block; }
.nightflight-theme .obs-panel-body{
  display:flex; gap:24px; padding:14px 20px; flex-wrap:wrap;
  background:var(--bg-raised); border:1px solid var(--hairline); border-top:none;
  border-radius:8px; border-top-left-radius:0; position:relative;
}
.nightflight-theme .obs-panel-left{ display:flex; flex-direction:column; gap:8px; min-width:268px; position:relative; }
.nightflight-theme .obs-panel-left::after{ content:''; position:absolute; top:0; bottom:0; right:-12px; width:1px; background:var(--hairline); }
.nightflight-theme .obs-panel-right{ flex:1; min-width:280px; }

.nightflight-theme .obs-weather-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.nightflight-theme .obs-weather-tabs{ display:flex; gap:4px; }
.nightflight-theme .obs-tab-btn{
  background:none; border:none; cursor:pointer; font-family:inherit;
  font-size:0.78rem; font-weight:600; color:var(--muted); padding:4px 10px; border-radius:6px;
}
.nightflight-theme .obs-tab-btn.is-active{ color:var(--ink); background:var(--hairline); }
.nightflight-theme .obs-tab-panel[hidden]{ display:none; }
.nightflight-theme .obs-weather-source{
  font-family:'IBM Plex Mono', monospace; font-size:0.62rem; color:var(--amber);
  text-transform:uppercase; letter-spacing:0.05em;
}
.nightflight-theme .obs-weather-days{ display:flex; gap:0; overflow-x:auto; padding-bottom:2px; }
.nightflight-theme .obs-day{
  display:flex; flex-direction:column; align-items:center; gap:2px; flex:1 1 0; min-width:54px;
  padding:4px 10px;
}
.nightflight-theme .obs-day:not(:last-child){
  border-right:1px solid var(--hairline);
}
.nightflight-theme .obs-day-label{ font-family:'IBM Plex Mono', var(--font-primary), monospace; font-size:0.7rem; color:var(--muted); }
.nightflight-theme .obs-day-icon{
  width:28px; height:28px; margin:2px 0; display:inline-flex; align-items:center; justify-content:center;
  color:var(--ink-soft);
}
.nightflight-theme .obs-day-icon svg{ display:block; }
.nightflight-theme .sky-icon--clear{ color:var(--amber); }
.nightflight-theme .obs-day-pop{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:var(--indigo); }
.nightflight-theme .obs-day-temp{ font-family:'IBM Plex Mono', monospace; font-size:0.85rem; display:flex; gap:3px; white-space:nowrap; overflow-wrap:normal; word-break:normal; }
.nightflight-theme .obs-day-temp .tmx{ color:var(--ink); font-weight:600; }
.nightflight-theme .obs-day-temp .tmn{ color:var(--muted); }
@media (max-width:880px){
  .nightflight-theme .obs-day{ padding:4px 2px; }
  .nightflight-theme .obs-day-label{ font-size:0.62rem; white-space:nowrap; }
}

.nightflight-theme .obs-hour-groups{ display:flex; gap:16px; overflow-x:auto; padding-bottom:2px; }
.nightflight-theme .obs-hour-group{ display:flex; flex-direction:column; gap:2px; flex:0 0 auto; }
.nightflight-theme .obs-hour-group + .obs-hour-group{ border-left:1px solid var(--hairline); padding-left:16px; }
.nightflight-theme .obs-hour-group-date{
  font-family:'IBM Plex Mono', var(--font-primary), monospace; font-size:0.7rem; color:var(--amber);
  white-space:nowrap; line-height:1.1; margin-bottom:0;
}
.nightflight-theme .obs-hour-row{ display:flex; gap:2px; }
.nightflight-theme .obs-hour{
  display:flex; flex-direction:column; align-items:center; gap:2px; flex:0 0 auto; min-width:40px;
  padding:4px 3px; border-radius:6px;
}
.nightflight-theme .obs-hour-time{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:var(--muted); }
.nightflight-theme .obs-hour-temp{ font-family:'IBM Plex Mono', monospace; font-size:0.85rem; color:var(--ink); font-weight:600; }

.nightflight-theme .obs-weather-links{ display:flex; gap:12px; font-size:0.68rem; flex-shrink:0; white-space:nowrap; }
.nightflight-theme .obs-weather-links a{ color:var(--ink-soft); }
.nightflight-theme .obs-weather-links a:hover{ color:var(--indigo); }


/* NIGHTFLIGHT: 모달 열림/닫힘 시 스크롤바 유무로 인한 레이아웃 밀림 방지 */
html{
  scrollbar-gutter: stable;
  overflow-y: scroll;
  font-size:17px; /* NIGHTFLIGHT CUSTOM: Pretendard 적용 후 체감 글자 크기 보정 (기본 16px -> 17px) */
}


/* NIGHTFLIGHT: 모바일 메뉴 - SkyView/태양달행성 버튼 */
.nightflight-theme .mobile-tool-row{ display:flex; gap:10px; padding-bottom:4px; }
.nightflight-theme .mobile-tool-btn{
  flex:1; text-align:center; padding:10px 8px; font-size:0.84rem; font-weight:500;
  border:1px solid var(--hairline); border-radius:8px; background:var(--bg-raised);
  color:var(--ink-soft); cursor:pointer; font-family:inherit;
}
.nightflight-theme .mobile-tool-btn:hover{ color:var(--ink); border-color:var(--amber); }


/* NIGHTFLIGHT: 웹진형 스킨(스케치) - 작은 썸네일 + 제목/작성자 */
.nightflight-theme .webzine-item{
  display:flex; align-items:center; gap:12px; padding:15px 0;
  border-bottom:1px solid var(--hairline); min-width:0;
}
.nightflight-theme .webzine-thumb{
  width:54px; height:54px; border-radius:6px; background:var(--hairline);
  flex-shrink:0; display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.nightflight-theme .webzine-thumb-ph{
  font-family:'IBM Plex Mono', monospace; font-size:0.62rem; color:var(--muted);
}
.nightflight-theme .webzine-meta{ display:flex; flex-direction:column; gap:4px; min-width:0; flex:1; }
.nightflight-theme .webzine-title{
  font-size:0.88rem; font-weight:600; color:var(--ink);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.nightflight-theme .webzine-sub{
  font-family:'IBM Plex Mono', var(--font-primary), monospace; font-size:0.7rem; color:var(--muted);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block;
}


/* NIGHTFLIGHT: 스트립 모바일 최종 오버라이드 (파일 뒤쪽 배치로 우선순위 확보) */
@media (max-width: 880px){
  .nightflight-theme .sky-strip{
    flex-direction:column; align-items:stretch; gap:6px;
    height:auto; padding:12px 18px;
  }
  .nightflight-theme .sky-strip-item{
    white-space:normal; width:100%; font-size:0.9rem;
  }
  /* NIGHTFLIGHT CUSTOM: 시인성 개선(사용자 요청) - 모바일에서도 라벨 진하기 유지, 값은 검은색.
     아이콘+라벨은 붙여두고(justify-content 제거), 값만 margin-left:auto로 오른쪽 끝에 붙임
     - space-between을 쓰면 아이콘 추가 후 3등분되어 라벨이 어중간하게 가운데로 밀리는 문제가 있었음 */
  .nightflight-theme .sky-strip-item .label{
    color:var(--ink-soft); font-family:inherit; font-size:0.9rem; font-weight:600;
    text-transform:none; letter-spacing:normal;
  }
  .nightflight-theme .sky-strip-item .val{
    margin-left:auto; text-align:right; font-weight:600; color:var(--ink); font-size:0.9rem;
  }
}

/* NIGHTFLIGHT CUSTOM: 에디터 인라인 링크(.nf-link) 공개 문서 뷰 스타일 */
.nf-link { background: var(--indigo-soft) !important; color: var(--brand-solid) !important; font-weight: 700; text-decoration: none; padding: 1px 4px; border-radius: 4px; }
html[data-theme="dark"] .nf-link { background: var(--amber-soft) !important; color: var(--amber) !important; }

/* NIGHTFLIGHT CUSTOM: 라이믹스 코어(rhymix.scss)가 모든 button 태그에 흰색 text-shadow를 걸어놔서 텍스트가 이중으로 번져 보이는 문제 전역 방지 */
button, .btn, .bn { text-shadow: none !important; }

/* NIGHTFLIGHT CUSTOM: 회원정보 등 .dl-horizontal(구 float 방식)을 CSS Grid로 재구성해 라벨/값 행별 정렬 보정 */
.nightflight-theme .xm .dl-horizontal { display: grid; grid-template-columns: 160px 1fr; column-gap: 20px; row-gap: 10px; }
.nightflight-theme .xm .dl-horizontal dt { float: none; width: auto; clear: none; text-align: right; overflow: visible; white-space: normal; margin-bottom: 0; }
.nightflight-theme .xm .dl-horizontal dd { margin-left: 0; margin-bottom: 0; }
/* NIGHTFLIGHT CUSTOM: 구 float 클리어픽스용 :before/:after 가상요소가 grid 아이템으로 끼어들어 정렬 밀리던 문제 방지 */
.nightflight-theme .xm .dl-horizontal::before, .nightflight-theme .xm .dl-horizontal::after { content: none; display: none; }

/* NIGHTFLIGHT CUSTOM: 관리자용 .btnArea .btn-group(대문 위젯 캐시재생성/설정/페이지수정 등) 간격/크기 통일 */
.nightflight-theme .btnArea .btn-group { display: inline-flex !important; gap: 6px; }
.nightflight-theme .btnArea .btn-group > .btn,
.nightflight-theme .btnArea .btn-group > input.btn,
.nightflight-theme .btnArea .btn-group > button.btn {
  height: 30px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-left: 0 !important;
  position: static !important;
  border-radius: var(--radius) !important;
  border: 1px solid var(--control-border) !important;
  background: var(--control-bg) !important;
  color: var(--ink-soft) !important;
  padding: 0 14px !important;
  font-size: 0.85rem;
}
.nightflight-theme .btnArea .btn-group > .btn:hover {
  color: var(--ink) !important;
  border-color: var(--muted) !important;
}
/* NIGHTFLIGHT CUSTOM: iOS 가로모드에서 다이나믹 아일랜드/노치·모서리 라운드에 콘텐츠가 가려지는 문제 방지
   (세로모드/노치 없는 기기는 env() 값이 0이라 기존 디자인 그대로 유지됨) */
@media (orientation:landscape) and (pointer:coarse) and (max-height:600px){
  .nightflight-theme .header-inner{
    padding-left:max(24px, env(safe-area-inset-left));
    padding-right:max(24px, env(safe-area-inset-right));
  }
  .nightflight-theme .site-shell{
    padding-left:max(24px, env(safe-area-inset-left));
    padding-right:max(24px, env(safe-area-inset-right));
  }
  .nightflight-theme footer .wrap{
    padding-left:max(24px, env(safe-area-inset-left));
    padding-right:max(24px, env(safe-area-inset-right));
  }
}


/* NIGHTFLIGHT CUSTOM: iOS Safari 입력창 자동 확대 방지
 * iOS Safari는 input/textarea/select의 font-size가 16px 미만이면 포커스 시 자동 확대함
 * (안드로이드 Chrome에는 없는 iOS 전용 동작). 각 컴포넌트가 개별로 정한 작은 폰트 크기를
 * 여기서 일괄 override. `.nightflight-theme input` 형태(클래스+요소)는 `.site-search-input`
 * 같은 단일 클래스 선택자보다 특이도가 높아 소스 순서와 무관하게 항상 우선 적용됨.
 */
@media (max-width: 880px){
  /* NIGHTFLIGHT CUSTOM: .site-search-input 등 클래스 2개(specificity 0,2,0)로 지정된
   * 기존 규칙보다 우리 규칙(클래스1+요소1, 0,1,1)이 특이도가 낮아 무시되는 문제 확인 -
   * 사이트 전역의 모든 입력창을 개별 추적하는 대신 !important로 확실히 override.
   * 댓글/게시글 본문(Tiptap 기반 contenteditable, .ProseMirror)은 input/textarea가
   * 아니라서 별도로 [contenteditable]도 함께 지정해야 함. */
  .nightflight-theme input,
  .nightflight-theme textarea,
  .nightflight-theme select,
  .nightflight-theme [contenteditable]{ font-size:16px !important; }
}
