|  | /* 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アイコンまたはフォントアイコンを定義 */
 |