@charset "utf-8";

        /* --- 基本スタイル --- */
        /* --- サイドバー --- */
        .sidebar {
            width: 280px;
            background-color: #fff;
            border-right: 1px solid #e1e4e8;
            padding: 20px 0;
            overflow-y: auto;
            position: fixed;
            height: 100%;
            z-index: 100;
            transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .menu-title {
            font-size: 14px;
            font-weight: bold;
            color: #888;
            padding: 0 20px 10px;
            text-transform: uppercase;
        }

        /* --- メニューリスト --- */
        ul.menu-list, ul.menu-submenu {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        ul.menu-submenu {
            display: none;
            background-color: #f9f9f9;
        }

        ul.menu-submenu.open {
            display: block;
            animation: slideDown 0.2s ease-out;
        }

        /* --- リンクスタイル --- */
        .menu-link {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 9px 20px;
            color: #333;
            text-decoration: none;
            font-size: 15px;
            border-left: 3px solid transparent;
            cursor: pointer;
            transition: background 0.2s;
        }

        .menu-link:hover { background-color: #F4FBFA; color: #2c7873; }
        .menu-link.active { background-color: #DAF1F0; color: #2c7873; border-left-color: #2c7873; font-weight: bold; }

        /* インデント */
        .menu-submenu .menu-link { padding-left: 40px; font-size: 14px; }
        .menu-submenu .menu-submenu .menu-link { padding-left: 60px; }

        /* 矢印 */
        .arrow {
            width: 8px; height: 8px;
            border-right: 2px solid #aaa; border-bottom: 2px solid #aaa;
            transform: rotate(-45deg); transition: transform 0.3s;
        }
        .menu-link.expanded .arrow { transform: rotate(45deg); }

        /* --- コンテンツエリア --- */
        .content {
            flex: 1;
          /*padding: 40px;*/
            margin-left: 280px;
            transition: margin-left 0.3s;
        }

        /* --- ハンバーガーボタン --- */
        .hamburger-btn {
            display: none;
            position: fixed; top: 15px; right: 15px; z-index: 200;
            background: #fff; border: 1px solid #ddd; border-radius: 4px; padding: 14px;
            cursor: pointer; box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        }
        .hamburger-icon { display: block; width: 35px; height: 3px; background: #333; position: relative; }
        .hamburger-icon::before, .hamburger-icon::after {
            content: ''; position: absolute; left: 0; width: 100%; height: 100%; background: #333; transition: 0.2s;
        }
        .hamburger-icon::before { top: -9px; }
        .hamburger-icon::after { top: 9px; }

        /* --- オーバーレイ --- */
        .overlay {
            display: none;
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(0,0,0,0.4);
            z-index: 90;
            opacity: 0; transition: opacity 0.3s;
        }

        /* --- レスポンシブ (940+280px以下) --- */
        @media (max-width: 1220px) {
            .sidebar { transform: translateX(-100%); width: 260px; }
            .sidebar.active { transform: translateX(0); }
            .content { margin-left: 0; }
            .hamburger-btn { display: block; }
            .overlay.visible { display: block; opacity: 1; }
        }

        @keyframes slideDown {
            from { opacity: 0; transform: translateY(-5px); }
            to { opacity: 1; transform: translateY(0); }
        }
