/* 공통 스타일 */
body {
      font-family: Arial, sans-serif;
      margin: 0;
      padding: 0;
      box-sizing: border-box;

}

/* 기본적인 네비게이션 스타일 */
.navbar-container {
      display: flex;
      justify-content: center;

  /* 제목을 가운데로 배치 */
      align-items: center;

  /* 세로 중앙 정렬 */
      background-color: var(--brand);
      padding: 10px;
      position: relative;

  /* 메뉴 아이콘 위치 조절 */
      z-index: 1000;       

}

/* 라이트/다크 테마에 맞게 자동 전환 */
.navbar-container h2 {
      color: var(--text);
      margin: 0;
      font-size: 18px;
}

.menu-icon {
      font-size: 30px;
      color: var(--icon);
      cursor: pointer;
      position: absolute;
      left: 20px;
      top: 50%;
      transform: translateY(-50%);
      pointer-events: auto;

      /* 버튼 기본 스타일 리셋 */
      background: transparent;
      border: 0;
      padding: 0;
      -webkit-appearance: none;
      appearance: none;       

}

.menu-icon svg, .menu-icon i {
	  fill: currentColor;
	  stroke: currentColor;
}

/* 접근성: 키보드 포커스가 올 때만 보이도록 */
.menu-icon:focus-visible {
	  outline: 2px solid var(--btn-primary-hover);
	  outline-offset: 2px;
}


/* 슬라이드 메뉴 스타일 */
.sidenav {
      height: 100%;
      width: 0;
      position: fixed;
      z-index: 1500;
      top: 0;
      left: 0;
      background-color: var(--surface);
      color: var(--text);
      overflow-x: hidden;
      transition: width .3s ease;
      padding-top: 60px;
      border-right: 1px solid var(--border);
      border-radius: 0 !important;
      box-shadow: none !important;
}
.sidenav a {
      padding: 10px 16px 10px 20px;
      text-decoration: none;
      font-size: 24px;
      color: var(--text);
      display: block;
      transition: background-color .15s ease, color .15s ease;
      border-radius: 0 !important;
      background: transparent !important;
      border: 0 !important;

  line-height: 1.6;}

.sidenav a:hover {
      color: var(--text);
      background: var(--accent); 
}

.sidenav .closebtn {
      position: absolute;
      top: 0;
      right: 25px;
      font-size: 36px;
      margin-left: 50px;

}


/* 사용자 정보 표시 */
#user-info {
      padding: 20px;
      color: #818181;
      font-size: 18px;
      border-top: 1px solid #818181;
      margin-top: 20px;

}
#username-display {
      margin-bottom: 10px;

}
.logout-btn {
      color: #ff4d4d;
      text-decoration: none;

}
.logout-btn:hover {
      color: #ff1a1a;

}

/* 로그인 및 계정 생성 폼 스타일 */
.login-form, .register-form {
      max-width: 400px;
      margin: 0 auto;
      padding: 20px;
      background: var(--surface);
      color: var(--text);
      border: 1px solid var(--border);
      border-radius: 10px; 
}

.login-form h2, .register-form h2 {
      text-align: center;
      margin-bottom: 20px;

}

.login-form label, .register-form label {
      display: block;
      font-weight: bold;
      margin-bottom: 5px;
      font-size: 14px;

}

.login-form input[type="text"],
.login-form input[type="password"],
.register-form input[type="text"],
.register-form input[type="password"] {
      width: 100%;
      padding: 10px;
      margin-bottom: 20px;
      box-sizing: border-box;
      font-size: 14px;
      background: var(--card);
	  color: var(--text);
	  border: 1px solid var(--border);
	  border-radius: 8px;

}

/* 버튼 스타일 */
.login-form input[type="submit"],
.register-form input[type="submit"],
.login-form .account-create-link {
	  width: 100%;
	  padding: 10px;
	  background: var(--btn-primary-bg);
	  color: var(--btn-text);
	  border: 1px solid var(--border);
	  cursor: pointer;
	  font-size: 16px;
	  font-weight: 700;
	  border-radius: 8px;
	  margin: 10px 0;
	  display: block;
	  text-align: center;
	  box-sizing: border-box;
}

.login-form input[type="submit"]:hover,
.register-form input[type="submit"]:hover,
.login-form .account-create-link:hover {
      background-color: var(--brand);

  /* 호버 시 좀 더 어두운 블루 */
      text-decoration: none;

}

/* 링크 스타일 */
.login-form a, .register-form a {
      text-decoration: none;

}

.register-form a {
      display: block;
      text-align: center;
      color: #2196F3;

  /* 링크 색상도 블루 계열 */
      font-size: 14px;
      margin-top: 10px;

}

.register-form a:hover {
      text-decoration: underline;

}

/* 반응형 디자인 */
@media (max-width: 768px) {
      .login-form, .register-form {
            padding: 15px;

  }

}

/* 버전 업데이트 내역 페이지 스타일 */
#version-history {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      margin: 0 auto;
      text-align: left;
      padding: 20px;

}
#version-history ul {
      list-style-type: none;
      padding: 0;

}
#version-history li {
      margin-bottom: 30px;

}
#version-history ul ul {
      margin-top: 10px;

}
#version-history ul ul li {
      margin-bottom: 10px;

}

/* 콘텐츠 스타일 */
#content {
      padding: 20px;
      text-align: center;
      width: 100%;

}
@media (min-width: 768px) {
      #content {
            padding: 20px;
            margin: 0 auto;
            max-width: 1200px;

  }

}

/* 모바일용 스타일 */
@media (max-width: 768px) {
      body {
            margin: 0;
            padding: 0;

  }
      #content {
            padding: 10px;
            margin: 0 auto;
            max-width: 100%;
            box-sizing: border-box;

  }

}

/* 인덱스 */
.page-index {

  /* 시스템 폰트 스택 + 기본 간격 */
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
                 Arial, "Noto Sans", "Apple SD Gothic Neo", "Malgun Gothic",
                 "맑은 고딕", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
    line-height: 1.5;

}
.hero-index {
    text-align: center;
    margin: 8px auto 14px;

}
.hero-index h2 {
    font-size: 1.6rem;
    font-weight: 800;
    letter-spacing: .2px;
    margin: 0;

}
.chip {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: .8rem;
    line-height: 1;
    border: 1px solid rgba(0,0,0,.08);
    vertical-align: middle;

}
.chip--ver {
   margin-left: 6px;
   background: #eef2ff;
   color: #3730a3;

}
.chip--ok {
   background: #ecfdf5;
   color: #065f46;

}
.card {
    --surface: #fff;
    --border: rgba(0,0,0,.08);
    --shadow: 0 6px 16px -10px rgba(0,0,0,.25);

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: var(--shadow);

}
.compat-card {
    max-width: 860px;
    margin: 10px auto 20px;
    padding: 18px 20px;

}
.card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(0,0,0,.06);

}
.card-head .eyebrow {
    font-size: .9rem;
    font-weight: 700;
    color: #111827;

}
.kv-grid {

  /* 정의목록을 카드 안 전용 레이아웃으로 */
    margin: 10px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
    gap: 10px 12px;

}
.kv {
   display: grid;
   grid-template-columns: 1fr auto;
   align-items: center;
       gap: 8px;
   padding: 10px 12px;
   border-radius: 12px;
       background: rgba(0,0,0,.02);
   border: 1px solid rgba(0,0,0,.06);

}
.kv dt {
   margin: 0;
   color: #374151;
   font-weight: 600;

}
.kv dd {
   margin: 0;
   font-family: ui-monospace, "SFMono-Regular", Menlo, Monaco,
          Consolas, "Liberation Mono", "Courier New", monospace;
          font-weight: 700;
   letter-spacing: .2px;
          padding: 2px 8px;
   border-radius: 8px;
   background: #fff;
          border: 1px solid rgba(0,0,0,.08);

}
.compat-note {
    margin: 12px 2px 2px;
    color: #6b7280;
    font-size: .92rem;

}

.spec-card {
    max-width: 860px;
    margin: 12px auto 18px;
    padding: 16px 18px;
}

/* 제목 */
.spec-card h3 {
    margin: 0 0 10px;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: .2px;
    color: #111827;
}

/* 칩 배치 */
.spec-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 8px 0 6px;
}

/* 리스트(아이콘/이모지 포함 가독성 보강) */
.spec-list {
    list-style: none;
    padding: 0;
    margin: 8px 0 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px,1fr));
    gap: 6px 12px;
}

.spec-list li {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid rgba(0,0,0,.06);
    background: rgba(0,0,0,.02);
    border-radius: 10px;
    color: #374151;
}

.spec-list b {
    font-weight: 700;
    color: #111827;
}

.changelog {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px; /* 항목간 간격 */
}

.changelog li {
    font-size: .95rem;
    line-height: 1.5;
    color: #374151;
}

.changelog li b {
    display: block;
    margin-bottom: 4px;
    color: #111827;
    font-weight: 700;
}

.changelog .sub {
    display: block;
    margin-left: 14px;
    font-size: .88rem;
    color: #4b5563;
}


/* 라이트 팔레트 */
:root{
  --bg:#f6f7fb;
  --card:#ffffff;
  --surface:#ffffff;
  --border:#e5eaf3;
  --text:#111827;
  --text-muted:#64748b;
  --accent:#eef2ff; 
  --accent-strong:#c7d2fe;
  --brand:#c7d2fe; 
  --brand-dark:#b9c6ff;

  /* 버튼/아이콘 공통 */
  --btn-primary-bg: var(--brand);
  --btn-primary-hover: var(--brand-dark);
  --btn-text:#111827;
  --icon:var(--text);

  /* 브라우저 기본 UI(폼·스크롤)도 라이트/다크 지원 */
  color-scheme: light dark;
}

/* 다크 팔레트 */
@media (prefers-color-scheme: dark) {

	:root{
		--bg:#0b0f14;
	--card:#0f1520;
	--surface:#0f1520;
	--border:rgba(255,255,255,.14);
	--text:#e6ebf2;
	--text-muted:#a8b3c2;
	--accent:#1b2233;
	--accent-strong:#9fb0ff;
	--brand:#c7d2fe;
	--brand-dark:#9fb0ff;

	--btn-primary-bg:#1b2233;
	--btn-primary-hover:#24314a;
	--btn-text:#e6ebf2;
	--icon:var(--text);

	color-scheme: dark;
	}

	/* 카드/컨테이너: 배경 한 톤 어둡게, 테두리 대비↑ */
	.card {
			--surface: #0f1520;
			--border: rgba(255,255,255,.14);
			--shadow: 0 8px 20px -12px rgba(0,0,0,.8);
	}
	.card-head { border-bottom-color: rgba(255,255,255,.14); }

	/* 사용된 프로그램/버전 K/V 카드: 가독성↑(흰색 눈부심↓) */
	.kv {
			background: #0f1520;               /* 투명도 배경 → 실색 배경 */
			border-color: rgba(255,255,255,.16);
	}
	.kv dt {
			color: #d7deea;                    /* 순백에 가까운 톤 ↓ */
	}
	.kv dd {
			background: #0e1624;               /* 내용부는 조금 더 어둡게 */
			color: #dde5ef;                    /* 본문 가독성↑ */
			border-color: rgba(255,255,255,.18);
	}

	/* 안내 문구(호환/주의 등): 너무 흐리지 않도록 살짝 상향 */
	.compat-note {
			color: var(--text-muted);
	}

	/* 섹션 제목(권장사양 등): 본문 대비 보다 한 단계 밝게 */
	.spec-card h3 { 
			color: var(--text);
	}

	/* 권장사양 리스트: 배경 고정색 + 텍스트/테두리 대비↑ */
	.spec-list li {
			border-color: rgba(255,255,255,.16);
			background: #111a29;               /* 투명 배경 → 실색 배경 */
			color: #dde5ef;                    /* 본문 가독성↑ */
	}
	.spec-list b { 
			color: #ffffff;                    /* 강조는 선명하게 */
	}
	.spec-card{
			background:#0f1520;                   /* 섹션 카드 배경 고정 */
			border-color:rgba(255,255,255,.16);   /* 테두리 대비 ↑ */
	}

	/* 상단 칩/배지(“CPU ≥ 4스레드”, “RAM ≥ 4GB” 등) */
	.spec-card .chip,
	.spec-card .badge{
			color:#374151;                        /* 보라 톤 텍스트 */
			border-color:#1b2233;
	}

	/* OK/성공류 칩이 있다면 */
	.spec-card .chip--ok,
	.spec-card .badge--ok{
			background:#0f291e;
			color:#7ce1a4;
	}

	/* 리스트(아이콘+텍스트 줄) — 범위를 섹션 내부로 좁혀 우선순위 ↑ */
	.spec-card .spec-list li{
			background:#111a29;
			border-color:rgba(255,255,255,.16);
			color:#dde5ef;
	}
	.spec-card .spec-list b{ color:#ffffff; }

	/* 아이콘이 SVG/폰트라면 색 통일(선택) */
	.spec-card .spec-list .ico{
			color:#9fb0ff; fill:#9fb0ff;
	}

	/* 보조설명 */
	.spec-card .muted,
	.spec-card .compat-note{ color: var(--text-muted) }

	/* 테이블/폼 다크모드 가독성 보강 */
	.common-table {
			background: var(--surface);
			border-color: var(--border);
			color: var(--text);
	}
	.common-table thead th {
			background: var(--accent);
			color: var(--text);
			border-bottom-color: var(--border);
	}
	.common-table tbody td {
			color: var(--text);
			border-top-color: rgba(255,255,255,.08); 
	}
	.common-table tbody tr:hover {
			background: rgba(255,255,255,.04);
	}

	/* 칩/뱃지 테두리 대비 보강 */
	.chip { border-color: rgba(255,255,255,.16); 
	}

}


/* 인덱스 모바일 쏠림 방지 */
#content.page-index {
	display:flex;
	flex-direction:column;
	align-items:center;

/* 수평 중앙 */

}

/* 자식 섹션(히어로/카드/버전내역) 공통 폭 규칙 */
#content.page-index > * {
	width: min(860px, calc(100% - 32px));

/* 양쪽 16px 여백 유지 */

}

/* 녹화 현황 페이지 스타일 */
.page-recording {
		display: flex;
		flex-direction: column;

}
.page-recording h1 {
		font-size: 24px;
		margin-bottom: 20px;

}
.page-recording .global-buttons {
		display: flex;
		justify-content: center;
		gap: 20px;
		margin-bottom: 20px;

}
.page-recording .global-buttons button {
	  background: var(--btn-primary-bg);
	  color: var(--btn-text);
	  padding: 10px 20px;
	  font-size: 16px;
	  border: 1px solid var(--border);   /* 라이트에서도 테두리로 대비↑ */
	  border-radius: 8px;
	  cursor: pointer;
	  font-weight: 700;
}

.page-recording .global-buttons button:hover {


}

.page-recording #channel-list {
		display: flex;
		flex-wrap: wrap;
		gap: 20px;
		justify-content: center;

}

.page-recording .channel {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
		max-width: 340px;                /* 폭은 유동, 최대 340px */
		padding: 16px 16px 18px;
		margin-bottom: 20px;

		background: var(--card);
		border: 1px solid var(--border); 
		border-radius: 12px;             
		box-shadow: 0 1px 2px rgba(0,0,0,.03);

		transition: box-shadow .2s ease; 
}

.page-recording .channel:hover {
    box-shadow: 0 4px 10px rgba(0,0,0,.06); 
}

.page-recording .channel-thumbnail-container {
		position: relative;
		margin-bottom: 12px;
		border-radius: 12px;        
		overflow: hidden;          
}
.platform-icon {
		position: absolute;
		top: 10px;
		right: 10px;
		width: 30px;
		height: 30px;
		border-radius: 50%;

}
.page-recording .channel-thumbnail {
		display: block;
		width: 100%;
		aspect-ratio: 16 / 9;        /* 비율 고정 */
		object-fit: cover;           /* 비율 유지한 채로 박스 채우기 */
		border-radius: 12px;       
}
.page-recording .channel-info {
		text-align: center;
		width: 100%;
}
/* 본문 정보 간격/톤 정리 */
.page-recording .channel-info p {
		margin: 4px 0;
		color: var(--text-muted);     /* 보조 텍스트 톤 */

}
.page-recording .channel h2 {
		margin-top: 0;
		margin-bottom: 10px;
		font-size: 20px;

}
.page-recording .channel p {
		margin: 5px 0;
		font-size: 14px;
		color: #333;

}

.page-recording .channel button {
		margin-top: 12px;
		padding: 10px 16px;
		background: var(--btn-primary-bg);
		color: var(--btn-text);
		border: 1px solid var(--border);
		border-radius: 8px;             
		font-weight: 600;
		cursor: pointer;
		transition: background-color .15s ease, border-color .15s ease;
}

.page-recording .channel button:hover {
     	background-color: var(--btn-primary-hover);
		border-color: var(--border);
}

/* 키보드 접근성 */
.page-recording .channel button:focus-visible {
		outline: 2px solid var(--brand-dark);
		outline-offset: 2px;
}

/* 필터링 드롭다운 및 검색 입력폼 스타일 */
.filter-container {
		margin-bottom: 20px;
		display: flex;
		align-items: center;
		justify-content: center;

}
.filter-container label {
		margin-right: 10px;
		font-weight: bold;

}
#channel-filter {
		padding: 5px;
		font-size: 16px;
		border: 1px solid #ccc;
		border-radius: 4px;
		margin-right: 15px;

}
#channel-search {
		padding: 5px 10px;
		font-size: 16px;
		border: 1px solid #ccc;
		border-radius: 4px;
		width: 200px;

}
#channel-search:focus {
		border-color: #66afe9;
		outline: none;
		box-shadow: 0 0 8px rgba(102, 175, 233, 0.6);

}
.page-recording .no-results {
		width: 100%;
		text-align: center;
		padding: 20px;
		font-size: 18px;
		color: #888;

}

/* 스크롤바 스타일링 */
.popup-logmessage::-webkit-scrollbar {
    width: 8px;

}

.popup-logmessage::-webkit-scrollbar-thumb { 
	background: var(--accent-strong); 
}

.popup-logmessage::-webkit-scrollbar-thumb:hover { 
	filter: brightness(.95); 
}

.popup-logmessage::-webkit-scrollbar-track { 
	background: var(--accent); 
}


/* 토글 스위치 스타일 */
.switch {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 28px;

}
.toggle-top-left {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;

}
.switch input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
    cursor: pointer;

}
.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
   left: 0;
   right: 0;
   bottom: 0;
    background-color: #ccc;
    transition: .4s;
    border-radius: 34px;

}
.slider:before {
    content: "";
    position: absolute;
    height: 22px;
    width: 22px;
    left: 3px;
    bottom: 3px;
    background-color: #fff;
    transition: .4s;
    border-radius: 50%;

}
.switch input:checked + .slider {
    background-color: var(--brand);

}
.switch input:checked + .slider:before {
    transform: translateX(22px);


}

/* 채널이 OFF 상태일 때 */
.channel-disabled {
		filter: grayscale(100%);
		opacity: 0.6;

}

/* 같이보기 뱃지 */
.watchparty-badge {
    position: absolute;
    bottom: 10px;
    right: 5px;
    background-color: rgba(0, 0, 0, 0.6);
    color: #fff;
    padding: 2px 4px;
    font-size: 14px;
    border-radius: 3px;

}

/* 설정 페이지 스타일 */
.page-config {
		display: flex;
		flex-direction: column;

}
.page-config h1 {
		font-size: 24px;
		margin-bottom: 20px;

}
.page-config h3 {
		font-size: 24px;
		text-align: center;
		margin-bottom: 20px;

}
.page-config form {
    display: flex;
  	max-width: 900px !important;
		flex-direction: column;
		gap: 15px;
  	margin: 0 auto;

}

.page-config label {
		font-weight: bold;
		display: block;
		font-size: 14px;

}
.page-config input,
.page-config select,
.page-config textarea {
		padding: 10px;
		font-size: 14px;
		width: 100%;
		box-sizing: border-box;

}
.page-config button:not(.menu-icon),
.page-config input[type="submit"] {
	  padding: 10px 20px;
	  background: var(--btn-primary-bg);
	  color: var(--btn-text);
	  border: 1px solid var(--border);
	  cursor: pointer;
	  font-size: 14px;
	  border-radius: 8px;
}

.page-config button:hover,
.page-config input[type="submit"]:hover {
    background-color: var(--brand);

}

.description {
    width: 100%;
  	text-align:center;
    border-collapse: collapse;

}

.description th, .description td {
    border: 1px solid #ddd;
    padding: 8px;

}

.description th {
    background-color: #f2f2f2;
    text-align: center;

}

/* 파일관리 페이지 */

/* 파일관리 비활성 시, 본문 래퍼 숨김 (서버렌더 즉시 적용) */
body[data-fm-enabled="0"] #files-app {

    display: none !important;


}
.modal {
    position: fixed;
   inset: 0;
    display: flex;
   align-items: center;
   justify-content: center;
    background: rgba(0,0,0,.45);
    z-index: 9999;

}
.modal.hidden {
   display: none;


}
.modal .modal-content {
    position: relative;
    background: #fff;
    width: 480px;
   max-width: 90vw;
    padding: 16px;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,.2);

}
.modal .modal-content h3 {
    margin: 0 0 10px 0;
    font-size: 18px;

}
.modal .modal-content p,
.modal .modal-content ol {
   margin: 8px 0;

}
.modal .modal-content code {
    background: #f7f7f7;
    padding: 2px 6px;
    border-radius: 6px;

}

/* 버튼 영역 */
.modal .button-row {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 16px;

}
.modal .button-row button {
    padding: 8px 14px;
    border-radius: 8px;
    border: 1px solid transparent;
    cursor: pointer;
    font-weight: 600;

}

/* 기본버튼: 설정으로 이동 */
.modal .button-row #go-config {
    background: var(--btn-primary-bg);
    color: var(--btn-text);
    border: 1px solid var(--border);
}
.modal .button-row #go-config:hover { background: var(--btn-primary-hover); }


/* 보조버튼: 닫기 */
.modal .button-row .secondary {
    background: #f2f2f2;
    color: #333;
    border-color: #ddd;

}
.modal .button-row .secondary:hover {
    background: var(--brand-dark);

}

/* 사이드내브보다 위로 */
.modal {
    z-index: 2000;

}

/* 설명 공통 스타일 */
.description {
    width: 100%;
    text-align: center;
    border-collapse: collapse;

}
.description th, .description td {
    border: 1px solid #ddd;
    padding: 8px;

}
.description th {
    background-color: #f2f2f2;
    text-align: center;

}

/* 계정 관리 스타일 */
.account-fields {
    margin-top: 20px;

}

.account-management {
		padding: 15px;
		margin-bottom: 20px;
		background-color: #fff;
		border: 1px solid #ddd;
		border-radius: 5px;

}

.account-management label {
		font-weight: bold;
		margin-bottom: 10px;
		display: block;

}

.account-management input {
		width: 100%;
		padding: 10px;
		margin-bottom: 15px;
		border: 1px solid #ccc;
		border-radius: 3px;

}

.submit-button, .delete-button {
    width: 48%;
    padding: 10px;
    background: var(--btn-primary-bg);
    color: var(--btn-text);
    font-weight: 700;
    border: 1px solid var(--border);
    border-radius: 8px;
    cursor: pointer;
    box-sizing: border-box;
}
.delete-button {
    background: #fff5f5;
    color: #7f1d1d;
    border-color: #ffe4e6;
}
.submit-button:hover { background: var(--btn-primary-hover); }
.delete-button:hover  { filter: brightness(.97); }


.delete-button:hover {
    background-color: var(--brand-dark);

}

/* ── 채널 관리 페이지 기본 스타일 ── */
.page-channels {
    display: flex;
    flex-direction: column;

}
.page-channels h1 {
		font-size: 24px;
		margin-bottom: 20px;

}

/* 채널 추가 폼 스타일 */
#addChannelForm {
		display: flex;
		flex-direction: column;
		gap: 15px;
		margin-bottom: 20px;

}
#addChannelForm label {
		font-weight: bold;
		display: block;
		font-size: 14px;

}
#addChannelForm input,
#addChannelForm select {
		padding: 10px;
		font-size: 14px;
		width: 100%;
		box-sizing: border-box;

}

#addChannelForm button[type="submit"] {
    padding: 10px;
    background: var(--btn-primary-bg);
    color: var(--btn-text);
    border: 1px solid var(--border);
    cursor: pointer;
    border-radius: 8px;
    font-size: 16px;
    width: 100%;
    box-sizing: border-box;
}

#addChannelForm button[type="submit"]:hover { 
		background: var(--btn-primary-hover); 
	}

.field-desc {
    font-size: 0.9em;
    color: #666;
    margin: 4px 0 8px;
    line-height: 1.4;

}

/* ── 채널 카드 레이아웃  ── */
.channel-list {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
		gap: 20px;
		margin-top: 20px;

}

.channel-card {
		background-color: #fff;
		border: 1px solid #ccc;
		border-radius: 8px;
		padding: 15px;
		box-shadow: 0 2px 4px rgba(0,0,0,0.1);
		display: flex;
		flex-direction: column;
		justify-content: space-between;

}

.channel-card-header {
		display: flex;
		justify-content: space-between;
		font-size: 12px;
		color: #666;

}
.channel-card-body {
    margin: 10px 0;

}
.channel-card-body .channel-name {
		margin: 0 0 6px 0;
		font-size: 18px;
		font-weight: 700;
		color: var(--text);          
}

.channel-card-body p {
		margin: 3px 0;
		font-size: 14px;
		color: #555;

}

.channel-card-footer {
		display: flex;
		gap: 10px;
		justify-content: space-around;

}

.channel-card-footer button {
		flex: 1;
		padding: 8px 10px;
		font-size: 14px;
		border: none;
		border-radius: 4px;
		cursor: pointer;

}

.channel-edit-form .button-row {
    display: flex;
    gap: 10px;

  /* 버튼 사이 간격 */
    justify-content: space-around;
    margin-top: 10px;

}

/* 기존 수정 버튼 스타일과 동일하게 */
.channel-edit-form .edit-channel {
    background: var(--btn-primary-bg);
    color: var(--btn-text);
    flex: 1;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    cursor: pointer;
}

.channel-edit-form .edit-channel:hover { 
	background: var(--btn-primary-hover); 

}

/* 기존 삭제 버튼 스타일과 동일하게 */
.channel-edit-form .delete-channel {
    background: #fff5f5;
    color: #7f1d1d;
    flex: 1;
    padding: 8px 10px;
    font-size: 14px;
    border: 1px solid #ffe4e6;
    border-radius: 8px;
    cursor: pointer;
}

.channel-edit-form .delete-channel:hover { 
	filter: brightness(.97); 
}

/* ── 편집폼 디자인 ── */
.channel-edit-form {
    margin-top: 10px;
    padding: 10px;

}
.channel-edit-form label {
    font-weight: bold;
    display: block;
    margin-top: 5px;

}
.channel-edit-form input,
.channel-edit-form select {
    width: 100%;
    padding: 5px;
    margin-top: 3px;
    margin-bottom: 10px;
    box-sizing: border-box;

}
.channel-edit-form button {
    margin-right: 5px;
    padding: 5px 10px;
    cursor: pointer;

}

/* ── 모바일 반응형 ── */
@media (max-width: 768px) {
      .page-channels {
            padding: 10px;

  }
      #addChannelForm input,
      #addChannelForm select {
            max-width: 100%;

  }

}

/* 쿠키관리 페이지 스타일 */
.page-cookies {
		display: flex;
		flex-direction: column;

}

.page-cookies h1 {
		font-size: 24px;
		margin-bottom: 20px;

}

.page-cookies form {
		display: flex;
		width: 100%;
		flex-direction: column;
		gap: 15px;

}

.page-cookies label {
		font-weight: bold;
		display: block;
		font-size: 14px;

}

.page-cookies input {
		padding: 10px;
		font-size: 14px;
		width: 100%;
		box-sizing: border-box;

}

.page-cookies input[type="submit"] {
	  padding: 10px;
	  background: var(--btn-primary-bg);
	  color: var(--btn-text);
	  border: 1px solid var(--border);
	  cursor: pointer;
	  border-radius: 8px;
	  font-size: 14px;
	  width: 100%;
}

.page-cookies .last-modified {
		margin: 20px;
		font-size: 14px;
		color: #666;

}

/* 유튜브 쿠키 관리 섹션 스타일 */
.notice {
		background-color: #f9f9f9;
		border-left: 5px solid #ff9800;
		padding: 10px;
		margin: 20px 0;
		font-size: 14px;
		line-height: 1.5;

}

/* ── 모바일 반응형 ── */

/* 녹화현황 페이지 모바일 */
@media (max-width: 768px) {

  /* 1) 채널 목록: 그리드 자동 맞춤 → 좁은 화면에서 자연스런 줄바꿈 */
  .page-recording #channel-list{
    display: grid;                                  
    grid-template-columns: 1fr;                  
    gap: 12px;                                     
    justify-items: center;
    width: 100%;
    overflow-x: hidden;
  }

  /* 2) 카드: 폭 유동 + 공통 라운딩/패딩 유지 */
  .page-recording .channel{
    width: 100%;
    max-width: 420px;                               
    padding: 14px 12px 16px;
    box-sizing: border-box;
    border-radius: 12px;                        
  }

  /* 썸네일 컨테이너는 라운딩/클립 유지(이미 있다면 생략 가능) */
  .page-recording .channel-thumbnail-container{
    margin-bottom: 12px;
    border-radius: 12px;
    overflow: hidden;
  }

  /* 3) 썸네일: 16:9 + cover로 높이 균일화(그리드에서 매우 중요) */
  .page-recording .channel-thumbnail{
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;                        
    object-fit: cover;                             
    height: auto;
    border-radius: 12px;
    margin-bottom: 0;
  }

  /* 텍스트 정렬 */
  .page-recording .channel-info{ text-align: center; }

  /* 4) 버튼: 모바일에서는 가로 가득 + 터치 영역 확보 */
  .page-recording .channel button{
    width: 100%;
    max-width: none;                                
    padding: 12px 14px;                       
  }

  /* 5) 필터 영역: 1열 그리드로 스택, 모든 컨트롤 100% */
  .filter-container{
    display: grid;                                  
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
    max-width: 600px;
    margin: 16px auto;
    padding: 10px;
  }
  .filter-container div{
    display: grid;                                 
    grid-template-columns: 1fr;
    gap: 6px;
    width: 100%;
    margin-bottom: 0;
  }
  .filter-container label{
    font-weight: 700;
    margin: 0;                              
  }
  .filter-container select,
  .filter-container input{
    width: 100% !important;                        
    margin: 0 !important;
    padding: 10px;
    font-size: 16px;                               
    border: 1px solid var(--border);
    border-radius: 8px;
    box-sizing: border-box;
  }

  /* 6) 로그 팝업은 모바일에서 숨김 유지 */
  .popup-logmessage{ display: none !important; }
}


/* 모바일 쿠키 관리 페이지 */
@media (max-width: 768px) {
      .page-cookies input {
            padding: 10px;
            font-size: 14px;
            width: 100%;
            box-sizing: border-box;

  }
      .page-cookies input[type="submit"] {
            width: 100%;

  }
      .notice {
            font-size: 16px;

  }

}

/* 파일관리 페이지 */

/* 레이아웃 기본값 */
.page-files *,
.page-files *::before,
.page-files *::after {
    box-sizing: border-box;
}

body.page-files {
    background: var(--bg); 
}

/* 컨텐츠 최대폭 */
.page-files #content {
		max-width: 1200px;
		margin: 0 auto;
}

/* 툴바 */
.file-toolbar {
		background: var(--card); 
		border: 1px solid var(--border);
		border-radius: 12px;
		padding: 12px;
		box-shadow: 0 6px 16px -12px rgba(0,0,0,.25);
		display: grid;
		gap: 10px;
		margin: 12px 0 16px;
}

.file-toolbar .toolbar-row {
		display: flex;
		gap: 10px;
		align-items: center;
		flex-wrap: wrap;
}

.file-toolbar label {
		color: #6b7280;
		font-weight: 700;
}

.file-toolbar input[type="text"],
.file-toolbar select {
		border: 1px solid #e5e7eb;
		border-radius: 10px;
		padding: 10px 12px;
		background: #ffffff;
		min-width: 12ch;
}

.file-toolbar button {
		border: 1px solid #e5e7eb;
		background: #ffffff;
		color: #111827;
		padding: 10px 12px;
		border-radius: 10px;
		font-weight: 700;
		cursor: pointer;
}

.file-toolbar button:hover {
		background: var(--brand-dark);
		border-color: #d9e2f2;
}

#btnRefresh {
		color: #1a73e8;
		border-color: #cfe0ff;
}

/* 보기 토글(숨김 항목 표시) 라벨 */
.toggle-inline {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		color: #374151;
		cursor: pointer;
		user-select: none;
}

.toggle-inline input {
		width: 16px;
		height: 16px;
}

/* 브레드크럼  */
.breadcrumbs {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
		align-items: center;
		margin: 8px 0 12px;
}

.breadcrumbs a {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		text-decoration: none;
		background: #eef2ff;
		color: #3730a3;
		border: 1px solid #e0e7ff;
		padding: 6px 10px;
		border-radius: 999px;
		font-weight: 700;
}

.breadcrumbs a:hover {
    background: var(--brand-dark);
}

/* 디스크 요약( */
#storage-summary {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
		margin-bottom: 8px;
}

.disk-chip {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		padding: 6px 10px;
		border: 1px solid #e5e7eb;
		border-radius: 999px;
		background: #ffffff;
		box-shadow: 0 6px 16px -12px rgba(0,0,0,.25);
		font-size: .92rem;
}

.disk-chip .bar {
		width: 96px;
		height: 8px;
		background: #edf1f7;
		border-radius: 999px;
		overflow: hidden;
}

.disk-chip .bar > i {
		display: block;
		height: 100%;
		background-color: var(--brand);
		width: 0%;
}

/* 파일 목록 (리스트 뷰) */
.file-list {
		display: flex;
		flex-direction: column;
		gap: 10px;
}

.file-item {
		background: var(--card); 
		border: 1px solid var(--border);
		border-radius: 12px;
		padding: 12px;
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
		gap: 12px;
		box-shadow: 0 6px 16px -12px rgba(0,0,0,.25);
}

.file-item .fi-left {
		display: flex;
	  align-items: center;
		gap: 12px;
		min-width: 0;
}

.fi-icon {
		width: 36px;
		height: 36px;
		border-radius: 8px;
		display: flex;
		align-items: center;
		justify-content: center;
		background: #f5f6fb;
		border: 1px solid #e6e8f2;
		font-size: 18px;
		flex: 0 0 auto;
}

.fi-icon.file   { background: #f8fafc; }
.fi-icon.folder { background: #fff7ed; }

.fi-main {
		min-width: 0;
		display: flex;
		flex-direction: column;
		gap: 2px;
}

.fi-name {
		font-weight: 700;
		color: #111827;
		max-width: 64vw;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		cursor: pointer; /* 폴더/파일 오픈 */
}

.fi-type {
		font-size: .85rem;
		color: #6b7280;
}

/* 2×2 작업 버튼 */
.file-item .fi-actions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		width: 220px;
		flex: 0 0 auto;
}

.file-item .fi-actions button {
		border: 1px solid #e5e7eb;
		background: #ffffff;
		border-radius: 8px;
		padding: 8px 10px;
		font-weight: 700;
		cursor: pointer;
}

.file-item .fi-actions button:hover {
		background: var(--brand-dark);
		border-color: #d9e2f2;
}

/* 숨김 항목 표시/비표시 지원 */

.is-hidden { display: none !important; }
body.show-hidden .is-hidden { display: flex !important; }

.modal {
		position: fixed;
		inset: 0;
		display: none; /* 기본은 숨김 */
		align-items: center;
		justify-content: center;
		background: rgba(0,0,0,.45);
		z-index: 2000;
}

.modal.hidden {
		display: none;
}

.modal .modal-content {
		background: #ffffff;
		width: 480px;
		max-width: 90vw;
		padding: 16px;
		border-radius: 12px;
		box-shadow: 0 10px 30px rgba(0,0,0,.2);
}

.modal .modal-content h3 {
		margin: 0 0 10px;
		font-size: 18px;
}

.modal .modal-content p,
.modal .modal-content ol {
	 margin: 8px 0;
}

.modal .button-row {
		display: flex;
		gap: 8px;
		justify-content: flex-end;
		margin-top: 16px;
}

.modal .button-row button {
		padding: 8px 14px;
		border-radius: 8px;
		border: 1px solid transparent;
		font-weight: 700;
		cursor: pointer;
}

.modal #go-config {
		background-color: var(--brand);
		color: #ffffff;
}

.modal #go-config:hover {
	 filter: brightness(.95);
}

.modal .secondary {
		background: #f2f2f2;
		color: #333333;
		border-color: #dddddd;
}

.modal .secondary:hover {
	  background: var(--brand-dark);
}

/* 파일매니저 비활성 시 자동 표시 */
body[data-fm-enabled="0"] #files-app {
		display: none !important;
}

body[data-fm-enabled="0"] #fm-disabled-modal {
		display: flex !important;
}

/* 테이블(데스크탑 리스트) 기본 스타일 */
.table-wrap { overflow: auto; }

/* 테이블 가독성 & 말줄임 + 고정 레이아웃 */
.table-wrap .common-table { 
		table-layout: fixed; 
		width: 100%; 
}

.common-table {
		width: 100%;
		border-collapse: separate;
		border-spacing: 0;
		background: #ffffff;
		border: 1px solid #e5e7eb;
		border-radius: 12px;
		box-shadow: 0 6px 16px -12px rgba(0,0,0,.25);
}

/* 헤더: 중앙정렬(이름만 좌측 유지) */
.common-table thead th {
		position: sticky; top: 0;
		background: #f8fafc;
		color: #374151;
		font-weight: 700;
		padding: 10px 12px;
		border-bottom: 1px solid #e5e7eb;
		text-align: center;
}

.common-table thead th.col-name { text-align: left; }

.common-table tbody td {
		padding: 10px 12px;
		border-top: 1px solid #f1f5f9;
		vertical-align: middle;
}
.common-table tbody tr:hover { background: var(--brand-dark); }

/* 컬럼 폭/정렬(버튼 영역 확보가 우선) */
.common-table thead th.col-type,
.common-table tbody td.col-type { width: 8ch; text-align: center; }

.common-table thead th.col-name,
.common-table tbody td.col-name { width: auto; }

.common-table thead th.col-size,
.common-table tbody td.col-size { width: 9ch; text-align: center; }

.common-table thead th.col-mtime,
.common-table tbody td.col-mtime { width: 18ch; text-align: center; }

/* 1×4 버튼 가로 배치 + 충분한 가로폭 확보 */
.common-table thead th.actions,
.common-table tbody td.actions { 
		width: 340px; 
		text-align: center; 
		white-space: nowrap;
}
.common-table tbody td.actions button { 
		display: inline-block; 
		margin-right: 6px; 
}

/* 이름 버튼(말줄임) */
.linklike {
		background: none; 
		border: 0; 
		padding: 0;
		color: #1a73e8; 
		font-weight: 700; 
		cursor: pointer;
		text-align: left;
}
.table-wrap .common-table td.col-name .linklike {
		display: inline-block; 
		max-width: 100%; 
		overflow: hidden; 
		text-overflow: ellipsis; 
		white-space: nowrap; 
}

/* 덜 중요한 수치들 살짝 약하게 */
.table-wrap .common-table td.col-size,
.table-wrap .common-table td.col-mtime {
		font-size: .9rem; 
		color: #6b7280; 
}

/* 전역 hidden 유틸 */
.hidden { display: none !important; }

/* 모달: 기본은 보이게, hidden 때만 숨김 */
.modal {
		position: fixed;
		inset: 0;
		display: flex;         
		align-items: center;
		justify-content: center;
		z-index: 9999;
}
.modal.hidden { display: none !important; }

@media (min-width: 901px){ #mobileActionBar{ display:none; } }

/* 모바일(리스트) */
@media (max-width: 900px) {
  /* 데스크탑 테이블 숨김, 모바일 리스트만 사용 */
  #tableViewWrap { display: none; }
  #fileListMobile.grid-view { 
    display: grid; 
    grid-template-columns: 1fr !important;
    gap: 10px; 
    overflow-x: hidden; 
  }

  /* 하단 액션바 */
  .mobile-actionbar{
    position: fixed; left: 0; right: 0; bottom: 0;
    z-index: 1100;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(6px);
    border-top: 1px solid #e5e7eb;
  }

  .mobile-actionbar button{
    height: 44px;
    padding: 10px 8px;
    border: 0;                      
    background: transparent;          
    border-radius: 10px;
    font-weight: 700;
    color: #111827;
    box-shadow: none;                
  }

  .mobile-actionbar button:disabled{ opacity: .45; }
  .mobile-actionbar button:not(:disabled):hover{ 
    background: rgba(17,24,39,.06);    
  }

  .mobile-actionbar button:not(:disabled):active{ 
    background: rgba(17,24,39,.12);
  }

  .mobile-actionbar button:focus-visible{
    outline: 2px solid #8ab4f8;       
    outline-offset: 2px;
  }
}

  .fm-item { 
    position: relative;
    display: grid;
    grid-template-columns: 56px 1fr;
    column-gap: 12px;
    align-items: center;
    padding: 12px;
    border-radius: 12px;
    min-width: 0; /* 내부 말줄임 보조 */
  }

  .fm-thumb { 
    grid-column: 1 / 2; 
    width: 40px; height: 40px; 
    border-radius: 8px; 
    display: grid; place-items: center;
    background: #f3f4f6; border: 1px solid #e5e7eb;
  }

  .fm-item.kind-folder .fm-thumb::before { content: "📁"; font-size: 20px; }
  .fm-item.kind-file   .fm-thumb::before { content: "📄"; font-size: 20px; }

  /* 텍스트 래퍼가 실제 그리드 아이템 */
  .fm-text{
    grid-column: 2 / 3;
    min-width: 0;                 /* ← 이게 핵심 */
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  /* 실제 말줄임은 자식에게 */
  .fm-name, .fm-meta { 
    min-width: 0;
    max-width: 100%;
    overflow: hidden; 
    text-overflow: ellipsis; 
    white-space: nowrap;
  }

  .fm-name { font-size: .95rem; font-weight: 700; color: #111827; line-height: 1.2; }
  .fm-meta { font-size: .9rem;  color: #6b7280; }

  .fm-item.is-selected { outline: 2px solid #8ab4f8; outline-offset: 2px; }

  /* 체크박스 – 기본 숨김, 선택모드에서만 노출 */
  .fm-select {
    display: none;
    position: absolute; left: 8px; top: 8px; 
    width: 18px; height: 18px; z-index: 1;
  }
  .select-mode .fm-select { display: block; }
}

/* 디스크 칩: 아이콘 키우기 */
.disk-chip {
		display: inline-flex;
		align-items: center;
		gap: 10px;             
		padding: 6px 12px;
		border: 1px solid #e5e7eb;
		border-radius: 999px;
		background: #ffffff;
		box-shadow: 0 6px 16px -12px rgba(0,0,0,.25);
		font-size: .92rem;
}

/* 아이콘이 pseudo 또는 img로 들어올 때 모두 커지도록 */
.disk-chip .icon,
.disk-chip::before {
		width: 22px; height: 22px;
		flex: 0 0 22px;
		display: inline-block;
		background-size: contain;
		background-position: center;
		background-repeat: no-repeat;
}

.disk-chip .bar {
		width: 110px;           
		height: 8px;
		background: #edf1f7;
		border-radius: 999px;
		overflow: hidden;
}

.disk-chip .bar > i {
		display: block;
		height: 100%;
		background-color: var(--brand);
		width: 0%;
}


/* 전체 배경/문자색 통일 */
body { background: var(--bg); color: var(--text); }

/* 버튼 공통 — 라이트/다크 자동 전환 */
button:not(.menu-icon), .logout-btn, .restricted-menu, .action-btn, .btn{
		background: var(--btn-primary-bg);
		color: var(--btn-text);
		border: 1px solid var(--border);
		border-radius: 8px;
		padding: 10px 16px;
		font-weight: 700;
		cursor: pointer;
		box-shadow: none;
		transition: background-color .2s ease, 
		border-color .2s ease, 
		box-shadow .2s ease;
}

button:not(.menu-icon):hover,
.logout-btn:hover, .restricted-menu:hover, .action-btn:hover, .btn:hover{
		background: var(--btn-primary-hover);
		border-color: var(--border);
}

button:not(.menu-icon):focus-visible,
.logout-btn:focus-visible, .restricted-menu:focus-visible, .action-btn:focus-visible, .btn:focus-visible{
		outline: 2px solid var(--btn-primary-hover);
		outline-offset: 2px;
}

button:disabled{
		opacity: .55;
		cursor: not-allowed;
}

/* 카드/패널 */
.card, .tile, .panel, .table-container, .modal{
		background: var(--card);
		border: 1px solid var(--border);
		border-radius: 12px;
		box-shadow: 0 1px 2px rgba(0,0,0,.03);
		backdrop-filter: none;
}

/* 스크롤바 */
*::-webkit-scrollbar{ width:12px; height:12px; }
*::-webkit-scrollbar-thumb{
		background: var(--accent-strong);
		border-radius: 10px;
		border: 2px solid var(--accent);
}

*{ scrollbar-width: thin; scrollbar-color: var(--accent-strong) var(--accent); }

/* sys-dashboard */
.sys-dashboard{ margin-top: 16px; }
.sys-dashboard .row{ display:grid; gap:12px; }
.sys-dashboard .row + .row{ margin-top:20px; } /* 줄 간 간격 */

/* 타일은 최소 폭을 보장하며, 가능한 만큼 칼럼을 자동 생성 (모바일에서 줄바꿈) */
.sys-dashboard .row-main{ 
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));  /* CPU/메모리/네트워크 */
}
.sys-dashboard .row-disks{ 
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));  /* 디스크 타일은 더 좁게 허용 */
}

.sys-dashboard .row-disks .tile-brief{
		font-size: clamp(11px, 1.6vw, 13px);
		color: var(--text-muted);
		white-space: nowrap;           
		font-variant-numeric: tabular-nums;
}

.sys-dashboard .row-disks .tile-value{
	  font-size: clamp(14px, 3.6vw, 16px);
}

/* 타일 */
.sys-dashboard .tile{ padding:14px 16px; }
.sys-dashboard .tile-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.sys-dashboard .tile-title,
.sys-dashboard .tile-sub,

#net-rate {
	 word-break: keep-all;        
}

/* 모바일에서 너무 커지지 않도록 가변 폰트 사이즈(clamp) 적용 */
.sys-dashboard .tile-value{
		font-size: clamp(16px, 4.6vw, 18px); 
		font-weight:800;
		letter-spacing:.5px;
		margin-bottom:6px;
}

#net-rate {
		font-size: clamp(14px, 4vw, 16px);
		line-height:1.3;
}

.sys-dashboard .tile-sub{
		font-size: clamp(12px, 3.4vw, 14px);
		color: var(--text-muted);
}

.sys-dashboard .progress{
		height:12px; 
		background: var(--accent);
		border:1px solid var(--border);
		border-radius:999px;
		overflow:hidden;
}
.sys-dashboard .progress-bar{
		height:100%;
		width:0%;
		background: var(--accent-strong);
		transition: width .25s ease;
}

/* 디스크 타일 텍스트 보정 */
.sys-dashboard .tile .tile-sub small{ opacity:.85; }


/* 햄버거 아이콘 애니메이션 제거 */
.menu-icon,
.menu-icon * { transition: none !important; animation: none !important; }
.menu-icon:hover,
.menu-icon:active,
.menu-icon:focus { transform: translateY(-50%) !important; }


/* === 메뉴 아이콘: 호버/포커스/액티브 배경/애니메이션 제거 === */
.navbar-container .menu-icon,
.navbar-container .menu-icon:hover,
.navbar-container .menu-icon:focus,
.navbar-container .menu-icon:active{
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		transition: none !important;
		animation: none !important;
}


/* 900px 이하: 태블릿/소형 가로 환경 보정 */
@media (max-width: 900px) {
  .sys-dashboard .row { gap: 10px; }
  .sys-dashboard .tile { padding: 12px; }
  /* 가로 넓이는 되지만 높이가 짧은 가로(landscape)에서는 2/4열 기준 */
  @media (orientation: landscape) {
    .sys-dashboard .row-main{ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
    .sys-dashboard .row-disks{ grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
  }
}

/* 600px 이하: 일반적인 스마트폰 세로(포트레이트) */
@media (max-width: 600px) {
  /* 1행은 1열로 자연스럽게, 디스크는 2열까지 */
  .sys-dashboard .row-main{ grid-template-columns: 1fr; }
  .sys-dashboard .row-disks{ grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .sys-dashboard .row { gap: 8px; }
  .sys-dashboard .tile { padding: 10px 12px; }

  /* 타이틀/보조 텍스트는 더 컴팩트하게 */
  .sys-dashboard .tile-title{ font-size: clamp(13px, 3.6vw, 15px); }
  .sys-dashboard .tile-sub{   font-size: clamp(12px, 3.2vw, 14px); }
}