/* LINE風Redmineテーマ - application.css */
/* 基本スタイルと共通コンポーネント用CSS */

/* ベースとなる変数 */
:root {
  --line-primary: #06C755;      /* LINEの特徴的なグリーン */
  --line-secondary: #1E1E1E;    /* ほぼ黒（テキスト用） */
  --line-background: #F1F1F4;   /* 背景色 */
  --line-light-gray: #E8EAED;   /* 明るい背景色 */
  --line-mid-gray: #D8D8DD;     /* 境界線・区切り線 */
  --line-dark-gray: #8E8E93;    /* セカンダリテキスト */
  --line-white: #FFFFFF;        /* 白背景 */
  --line-sidebar-bg: #1E1E1E;   /* サイドバー背景色（黒） */
  --line-active-item: #E1F7E8;  /* アクティブ項目 */
  --line-border: #DCDCE0;       /* ボーダー色 */
  --line-panel-bg: #F9F9FB;     /* パネル背景色 */
  --line-link: #007AFF;         /* リンク色 */
  --line-error: #FF3B30;        /* エラー色 */
  --line-warning: #FFCC00;      /* 警告色 */
  --line-success: #34C759;      /* 成功色 */
  
  --border-radius-small: 6px;
  --border-radius-medium: 10px;
  --border-radius-large: 14px;
  
  --shadow-small: 0 1px 3px rgba(0,0,0,0.1);
  --shadow-medium: 0 4px 6px rgba(0,0,0,0.08);
  --shadow-large: 0 10px 20px rgba(0,0,0,0.12);
  
  --transition-speed: 0.3s;
}

/* リセットとベーススタイル */
html, body {
  font-family: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  background-color: var(--line-background);
  color: var(--line-secondary);
  line-height: 1.5;
  font-size: 14px;
  margin: 0;
  padding: 0;
  height: 100%;
}

/* Redmine全体のコンテナ */
#wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background-color: var(--line-background);
}

/* ============ ヘッダー ============ */
#top-menu {
  background-color: var(--line-primary);
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  border-bottom: 1px solid var(--line-border);
  box-shadow: var(--shadow-small);
  color: white;
  position: relative;
  z-index: 100;
}

/* ロゴ */
#top-menu a.home {
  display: flex;
  align-items: center;
  font-weight: 600;
  font-size: 16px;
  color: white;
  text-decoration: none;
}

#top-menu a.home:before {
  content: "";
  width: 28px;
  height: 28px;
  background-color: white;
  display: block;
  border-radius: 6px;
  margin-right: 10px;
}

/* ヘッダーメニューコンテナ */
#top-menu ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 15px;
}

#top-menu ul li {
  display: flex;
  align-items: center;
}

#top-menu ul li a {
  color: white;
  text-decoration: none;
  opacity: 0.9;
  transition: opacity var(--transition-speed) ease;
}

#top-menu ul li a:hover {
  opacity: 1;
}

/* ヘッダーの検索ボックス */
#top-menu form {
  position: relative;
  margin: 0 15px;
}

#top-menu #q {
  background-color: rgba(255, 255, 255, 0.2);
  border: none;
  border-radius: var(--border-radius-medium);
  padding: 10px 12px 10px 36px;
  width: 220px;
  font-size: 14px;
  color: white;
}

#top-menu #q::placeholder {
  color: rgba(255, 255, 255, 0.7);
}

#top-menu form:before {
  content: "⚲";
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: white;
  font-size: 16px;
}

/* ユーザーメニュー */
#top-menu #loggedas {
  margin-left: auto;
  display: flex;
  align-items: center;
}

#top-menu #loggedas a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background-color: white;
  color: var(--line-primary);
  font-weight: bold;
  text-decoration: none;
  box-shadow: var(--shadow-small);
  margin-left: 10px;
}

/* ============ メインメニュー（サイドバー） ============ */
#main-menu {
  position: sticky;
  top: 0;
  background-color: var(--line-white);
  border-right: 1px solid var(--line-border);
  box-shadow: var(--shadow-small);
  display: flex;
  flex-direction: column;
  height: calc(100vh - 56px);
  width: 250px;
  z-index: 90;
  transition: width var(--transition-speed) ease, transform var(--transition-speed) ease;
}

#main-menu .main-menu-toggle {
  display: none;
}

/* メインメニューヘッダー */
#main-menu h3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 20px;
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  border-bottom: 1px solid var(--line-mid-gray);
  background-color: var(--line-light-gray);
}

#main-menu h3 .main-menu-collapse {
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--line-dark-gray);
  cursor: pointer;
  background-color: var(--line-white);
  transition: all var(--transition-speed) ease;
}

#main-menu h3 .main-menu-collapse:hover {
  background-color: var(--line-mid-gray);
  color: var(--line-secondary);
}

/* メインメニューセクション */
#main-menu ul.menu-children {
  list-style: none;
  margin: 0;
  padding: 15px 0;
}

#main-menu .menu-section {
  padding: 5px 15px;
  font-size: 12px;
  font-weight: 600;
  color: var(--line-dark-gray);
  margin-top: 15px;
  text-transform: uppercase;
}

#main-menu a {
  padding: 10px 15px;
  margin: 2px 8px;
  display: flex;
  align-items: center;
  cursor: pointer;
  border-radius: var(--border-radius-small);
  transition: all var(--transition-speed) ease;
  text-decoration: none;
  color: var(--line-secondary);
}

#main-menu a:hover {
  background-color: var(--line-light-gray);
  transform: translateY(-1px);
}

#main-menu a.selected {
  background-color: var(--line-active-item);
  color: var(--line-primary);
  font-weight: 500;
}

#main-menu a:before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  margin-right: 10px;
  background-color: var(--line-primary);
  opacity: 0.1;
  border-radius: 4px;
}

#main-menu a.selected:before {
  opacity: 0.2;
}

/* メニューセパレーター */
#main-menu .menu-separator {
  height: 1px;
  background-color: var(--line-mid-gray);
  margin: 15px 15px;
  opacity: 0.5;
}

/* プロジェクト特有メニュー */
#main-menu #project-menu {
  margin-top: 10px;
}

#main-menu #project-menu h3 {
  background-color: var(--line-active-item);
  color: var(--line-primary);
}

/* ============ メインコンテンツエリア ============ */
#main {
  flex: 1;
  padding: 20px;
  background-color: var(--line-background);
  min-height: calc(100vh - 56px - 36px); /* ヘッダーとフッターの高さを引く */
}

#content {
  background-color: var(--line-white);
  border-radius: var(--border-radius-large);
  padding: 25px;
  box-shadow: var(--shadow-medium);
  margin-bottom: 20px;
}

/* ヘッダーとアクションボタン */
.title-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 25px;
}

h2, .content-header h1 {
  font-size: 24px;
  font-weight: 600;
  margin: 0 0 20px 0;
  color: var(--line-secondary);
}

/* コンテンツタブ */
.tabs {
  display: flex;
  border-bottom: 1px solid var(--line-mid-gray);
  margin-bottom: 20px;
  overflow-x: auto;
}

.tabs ul {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tabs ul li {
  margin-right: 5px;
}

.tabs ul li a {
  display: flex;
  align-items: center;
  height: 36px;
  padding: 0 15px;
  background-color: var(--line-light-gray);
  border-radius: var(--border-radius-medium) var(--border-radius-medium) 0 0;
  cursor: pointer;
  border: 1px solid var(--line-mid-gray);
  border-bottom: none;
  text-decoration: none;
  color: var(--line-secondary);
  transition: all var(--transition-speed) ease;
}

.tabs ul li a:hover {
  background-color: var(--line-panel-bg);
}

.tabs ul li a.selected {
  background-color: var(--line-active-item);
  color: var(--line-primary);
  font-weight: 500;
  border-bottom: 1px solid var(--line-active-item);
  margin-bottom: -1px;
}

/* ボタンスタイル */
input[type="submit"], 
input[type="button"],
button,
.button {
  background-color: var(--line-primary);
  color: white;
  border: none;
  border-radius: var(--border-radius-medium);
  padding: 10px 16px;
  font-weight: 500;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  transition: all var(--transition-speed) ease;
  text-decoration: none;
  font-size: 14px;
}

input[type="submit"]:hover, 
input[type="button"]:hover,
button:hover,
.button:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-medium);
}

.button-outline {
  background-color: transparent;
  color: var(--line-secondary);
  border: 1px solid var(--line-mid-gray);
}

.button-outline:hover {
  background-color: var(--line-light-gray);
}

/* リンクスタイル */
a {
  color: var(--line-link);
  text-decoration: none;
  transition: color var(--transition-speed) ease;
}

a:hover {
  color: #0056b3;
  text-decoration: underline;
}

/* フォーム要素 */
input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="date"],
textarea,
select {
  border: 1px solid var(--line-mid-gray);
  border-radius: var(--border-radius-small);
  padding: 8px 12px;
  font-size: 14px;
  transition: border-color var(--transition-speed) ease;
}

input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
input[type="date"]:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--line-primary);
}

/* チェックボックスとラジオボタン */
.check_box_group,
.radio_button_group {
  margin: 5px 0;
}

/* ブロックスタイル */
.box {
  background-color: var(--line-white);
  border-radius: var(--border-radius-medium);
  padding: 15px;
  box-shadow: var(--shadow-small);
  margin-bottom: 15px;
  border: 1px solid var(--line-border);
}

.wiki {
  line-height: 1.6;
}

/* ============ フッター ============ */
#footer {
  background-color: var(--line-white);
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-top: 1px solid var(--line-border);
  padding: 0 10px;
  color: var(--line-dark-gray);
  font-size: 12px;
}

/* ============ スクロールバー ============ */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: var(--line-light-gray);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb {
  background: #BEBEC2;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--line-dark-gray);
}

/* ============ アイコン ============ */
/* 必要に応じてSVGアイコンまたはフォントアイコンを定義 */
