        body {
            margin: 0;
            font-family: 'Inter', 'Noto Sans JP', sans-serif;
            background:
                radial-gradient(circle at top right, rgba(34, 211, 238, 0.12), transparent 30%),
                radial-gradient(circle at bottom left, rgba(249, 115, 22, 0.14), transparent 28%),
                linear-gradient(135deg, #0f172a 0%, #0f172a 42%, #134e4a 100%);
            min-height: 100vh;
        }

        /* WordPress環境でのスタイル競合回避 */
        #simulation-root {
            font-family: 'Inter', 'Noto Sans JP', sans-serif;
            background-color: #0f172a;
            background-image:
                linear-gradient(135deg, rgba(15, 23, 42, 0.94) 0%, rgba(15, 23, 42, 0.88) 38%, rgba(15, 118, 110, 0.84) 100%),
                url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
            color: #333;
            line-height: 1.5;
            padding: 1.25rem;
            border-radius: 1.5rem;
            touch-action: manipulation;
            -webkit-tap-highlight-color: transparent;
            position: relative;
            overflow: hidden;
            box-shadow: 0 28px 60px rgba(15, 23, 42, 0.28);
        }

        #simulation-root::before,
        #simulation-root::after {
            content: "";
            position: absolute;
            border-radius: 9999px;
            filter: blur(90px);
            pointer-events: none;
            opacity: 0.24;
        }

        #simulation-root::before {
            width: 260px;
            height: 260px;
            top: -80px;
            right: -90px;
            background: rgba(34, 211, 238, 0.9);
        }

        #simulation-root::after {
            width: 220px;
            height: 220px;
            bottom: -70px;
            left: -80px;
            background: rgba(249, 115, 22, 0.75);
        }

        #simulation-root .step {
            display: none;
        }

        #simulation-root .step.active {
            display: block;
            animation: fadeIn 0.3s ease-in;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(10px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        #simulation-root .btn-primary {
            background: linear-gradient(135deg, #0f766e 0%, #0891b2 100%);
            transition: all 0.3s ease;
            cursor: pointer;
            -webkit-user-select: none;
            user-select: none;
            box-shadow: 0 18px 32px rgba(8, 145, 178, 0.24);
        }

        #simulation-root .btn-primary:hover {
            transform: translateY(-2px);
            box-shadow: 0 18px 36px rgba(13, 148, 136, 0.38);
        }

        #simulation-root .input-field {
            transition: all 0.2s ease;
            cursor: pointer;
            -webkit-user-select: none;
            user-select: none;
            -webkit-appearance: none;
            appearance: none;
            touch-action: manipulation;
        }

        #simulation-root .input-field:focus {
            transform: scale(1.02);
            outline: none;
        }

        .show-on-print {
            display: none;
        }

        #simulation-root .progress-bar {
            transition: width 0.3s ease;
            background: linear-gradient(90deg, #fb923c 0%, #f97316 100%) !important;
        }

        #simulation-root .bg-white\/20 {
            background: rgba(255, 255, 255, 0.14) !important;
            border: 1px solid rgba(255, 255, 255, 0.18);
        }

        #simulation-root .bg-white\/95 {
            background: rgba(255, 255, 255, 0.96) !important;
            border-color: rgba(148, 163, 184, 0.2) !important;
            box-shadow: 0 22px 44px rgba(15, 23, 42, 0.16) !important;
        }

        #simulation-root .border-teal-50 {
            border-color: rgba(148, 163, 184, 0.18) !important;
        }

        #simulation-root .bg-teal-50 {
            background-color: #f0fdfa !important;
        }

        #simulation-root .bg-cyan-50,
        #simulation-root .to-cyan-50 {
            background-color: #ecfeff !important;
        }

        #simulation-root .bg-teal-100 {
            background-color: #ccfbf1 !important;
        }

        #simulation-root .bg-cyan-100 {
            background-color: #cffafe !important;
        }

        #simulation-root .border-teal-100 {
            border-color: #99f6e4 !important;
        }

        #simulation-root .border-teal-200 {
            border-color: #5eead4 !important;
        }

        #simulation-root .border-teal-300 {
            border-color: #2dd4bf !important;
        }

        #simulation-root .text-teal-600 {
            color: #0f766e !important;
        }

        #simulation-root .text-teal-700,
        #simulation-root .text-teal-800 {
            color: #115e59 !important;
        }

        #simulation-root .bg-teal-500 {
            background-color: #14b8a6 !important;
        }

        #simulation-root .bg-teal-600 {
            background-color: #0f766e !important;
        }

        #simulation-root .hover\:bg-teal-700:hover {
            background-color: #115e59 !important;
        }

        #simulation-root .ring-teal-100 {
            --tw-ring-color: rgba(153, 246, 228, 0.6) !important;
        }

        #simulation-root .focus\:ring-teal-200:focus,
        #simulation-root .peer-focus\:ring-teal-300:focus {
            --tw-ring-color: rgba(45, 212, 191, 0.28) !important;
        }

        #simulation-root .focus\:border-teal-500:focus {
            border-color: #0f766e !important;
        }

        #simulation-root .accent-teal-500 {
            accent-color: #0f766e !important;
        }

        #simulation-root .from-teal-50 {
            --tw-gradient-from: #f0fdfa var(--tw-gradient-from-position) !important;
            --tw-gradient-to: rgb(240 253 250 / 0) var(--tw-gradient-to-position) !important;
            --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
        }

        #simulation-root .from-teal-100 {
            --tw-gradient-from: #ccfbf1 var(--tw-gradient-from-position) !important;
            --tw-gradient-to: rgb(204 251 241 / 0) var(--tw-gradient-to-position) !important;
            --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
        }

        #simulation-root .to-cyan-100 {
            --tw-gradient-to: #cffafe var(--tw-gradient-to-position) !important;
        }

        #simulation-root .from-teal-700 {
            --tw-gradient-from: #0f766e var(--tw-gradient-from-position) !important;
            --tw-gradient-to: rgb(15 118 110 / 0) var(--tw-gradient-to-position) !important;
            --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
        }

        #simulation-root .to-cyan-600 {
            --tw-gradient-to: #0891b2 var(--tw-gradient-to-position) !important;
        }

        #simulation-root .text-orange-600 {
            color: #ea580c !important;
        }

        #simulation-root .bg-orange-50 {
            background-color: #fff7ed !important;
        }

        #simulation-root .bg-orange-100 {
            background-color: #ffedd5 !important;
        }

        #simulation-root .bg-orange-400 {
            background-color: #fb923c !important;
        }

        #simulation-root .border-orange-300 {
            border-color: #fdba74 !important;
        }

        #simulation-root .bg-orange-600 {
            background-color: #f97316 !important;
        }

        #simulation-root .hover\:bg-orange-700:hover {
            background-color: #ea580c !important;
        }

        #simulation-root .hover\:bg-orange-100:hover {
            background-color: #fed7aa !important;
        }

        #simulation-root .text-purple-600,
        #simulation-root .text-purple-700 {
            color: #475569 !important;
        }

        #simulation-root .bg-purple-50 {
            background-color: #f8fafc !important;
        }

        #simulation-root .bg-purple-100 {
            background-color: #e2e8f0 !important;
        }

        #simulation-root .bg-purple-400 {
            background-color: #64748b !important;
        }

        #simulation-root .border-purple-300 {
            border-color: #94a3b8 !important;
        }

        #simulation-root .bg-purple-600 {
            background-color: #475569 !important;
        }

        #simulation-root .hover\:bg-purple-700:hover {
            background-color: #334155 !important;
        }

        #simulation-root .hover\:bg-purple-100:hover {
            background-color: #e2e8f0 !important;
        }

        #simulation-root [data-action="print-ringi"] {
            background: linear-gradient(135deg, #0f766e 0%, #0891b2 100%) !important;
        }

        #simulation-root #total-savings-summary {
            background: linear-gradient(135deg, #f0fdfa 0%, #ecfeff 100%) !important;
            border: 1px solid #99f6e4;
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
        }

        #confirmation-summary .confirmation-card {
            background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.96) 100%);
            border: 1px solid rgba(226, 232, 240, 0.9);
            box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
        }

        #confirmation-summary .confirmation-label {
            letter-spacing: 0.08em;
        }

        #confirmation-summary .confirmation-value {
            font-size: 1.35rem;
        }

        #confirmation-summary .confirmation-edit {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            white-space: nowrap;
            padding: 0.55rem 0.95rem;
            border-radius: 9999px;
            background: rgba(20, 184, 166, 0.12);
            border: 1px solid rgba(20, 184, 166, 0.18);
            transition: all 0.2s ease;
        }

        #confirmation-summary .confirmation-edit:hover {
            background: rgba(20, 184, 166, 0.18);
            transform: translateY(-1px);
        }

        .annual-money {
            display: inline-flex;
            align-items: baseline;
            justify-content: flex-end;
            gap: 0.18rem;
            white-space: nowrap;
            font-variant-numeric: tabular-nums;
        }

        .annual-money-symbol {
            font-size: 0.78em;
            opacity: 0.78;
        }

        .annual-money-robot .annual-money-symbol,
        .annual-money-robot .annual-money-value {
            color: #b7791f;
        }

        .annual-money-savings .annual-money-symbol,
        .annual-money-savings .annual-money-value {
            color: #0f766e;
        }

        @media (max-width: 768px) {
            body {
                background:
                    radial-gradient(circle at top right, rgba(34, 211, 238, 0.1), transparent 32%),
                    linear-gradient(180deg, #0f172a 0%, #134e4a 100%);
            }

            #simulation-root {
                padding: 0.75rem;
                border-radius: 0;
                min-height: 100vh;
                box-shadow: none;
            }

            #simulation-root::before,
            #simulation-root::after {
                opacity: 0.14;
                filter: blur(70px);
            }

            #simulation-root > div {
                max-width: 100% !important;
            }

            #simulation-root .rounded-2xl,
            #simulation-root .rounded-3xl {
                border-radius: 1.25rem !important;
            }

            #simulation-root .p-10 {
                padding: 1.25rem !important;
            }

            #simulation-root .p-12 {
                padding: 1.5rem !important;
            }

            #simulation-root .p-8 {
                padding: 1.25rem !important;
            }

            #simulation-root .mb-8 {
                margin-bottom: 1.25rem !important;
            }

            #simulation-root h1.text-4xl,
            #simulation-root h2.text-3xl {
                font-size: 1.75rem !important;
                line-height: 1.25 !important;
            }

            #simulation-root .text-xl {
                font-size: 1rem !important;
            }

            #simulation-root .text-2xl {
                font-size: 1.35rem !important;
            }

            #simulation-root .text-3xl {
                font-size: 1.6rem !important;
            }

            #simulation-root .text-4xl {
                font-size: 1.9rem !important;
            }

            #simulation-root .text-5xl,
            #simulation-root .text-6xl {
                font-size: 2.2rem !important;
                line-height: 1.15 !important;
            }

            #simulation-root [data-action="start"] {
                width: 100%;
                padding: 1rem 1.25rem !important;
                font-size: 1rem !important;
            }

            #simulation-root .mt-8.flex.justify-center {
                flex-wrap: wrap;
                justify-content: flex-start !important;
                gap: 0.5rem 1rem !important;
            }

            #simulation-root .input-field {
                min-height: 56px;
                font-size: 1.25rem !important;
            }

            #simulation-root input[type="range"] + div {
                min-width: 74px !important;
                padding: 0.65rem 0.75rem !important;
            }

            #simulation-root .flex.items-center.gap-4 {
                align-items: stretch;
                gap: 0.75rem !important;
            }

            #simulation-root .flex.justify-between.mt-10,
            #simulation-root .flex.gap-4 {
                flex-direction: column;
                gap: 0.75rem !important;
            }

            #simulation-root .flex.justify-between.mt-10 > button,
            #simulation-root .flex.gap-4 > button {
                width: 100%;
            }

            #robot-recommendation {
                padding: 1rem !important;
            }

            #deebot-rec-section > div:first-child,
            #ufo-rec-section > div:first-child,
            #TakaLabot\ 55-rec-section > div:first-child {
                align-items: flex-start !important;
            }

            #deebot-rec-section .justify-between,
            #ufo-rec-section .justify-between,
            #TakaLabot\ 55-rec-section .justify-between {
                flex-direction: column;
                align-items: stretch !important;
                gap: 0.75rem !important;
            }

            #deebot-rec-section .justify-between > div:last-child,
            #ufo-rec-section .justify-between > div:last-child,
            #TakaLabot\ 55-rec-section .justify-between > div:last-child {
                justify-content: space-between;
            }

            #deebot-rec-section button,
            #ufo-rec-section button,
            #TakaLabot\ 55-rec-section button {
                width: 2.5rem !important;
                height: 2.5rem !important;
            }

            #confirmation-summary > div,
            #conditions-list {
                grid-template-columns: 1fr !important;
            }

            #confirmation-summary .confirmation-card {
                padding: 1rem !important;
            }

            #confirmation-summary .confirmation-card-head {
                flex-direction: column;
                align-items: stretch !important;
                gap: 0.85rem !important;
            }

            #confirmation-summary .confirmation-value {
                font-size: 1.15rem;
                line-height: 1.55;
            }

            #confirmation-summary .confirmation-edit {
                width: 100%;
                min-height: 44px;
            }

            .order-costs-row-screen {
                grid-template-columns: 1fr !important;
            }

            .annual-report-print-wrapper {
                display: block !important;
            }

            .annual-money {
                font-size: 0.94rem;
                gap: 0.12rem;
            }

            .annual-money-symbol {
                font-size: 0.72em;
            }

            .annual-table-wrapper,
            .annual-chart-wrapper {
                width: 100% !important;
            }

            #monthly-savings,
            #total-5year-savings {
                word-break: break-word;
            }

            #cost-comparison-chart,
            #cumulative-savings-chart {
                max-height: 240px;
            }

            #number-keypad > div,
            #wage-modal > div {
                width: calc(100vw - 1.5rem) !important;
                max-width: none !important;
                margin: 0.75rem !important;
                border-radius: 1.25rem !important;
            }

            #number-keypad > div {
                padding: 1rem !important;
            }

            #keypad-display {
                font-size: 2rem !important;
                padding: 0.9rem 1rem !important;
            }

            #simulation-root .keypad-btn {
                min-height: 64px;
                font-size: 1.5rem;
                padding: 1rem;
            }

            #wage-modal > div {
                height: calc(100vh - 1.5rem) !important;
                padding: 1rem !important;
            }

            .japan-map-container {
                padding: 0.75rem !important;
            }

            .map-wrapper {
                min-width: 640px;
                gap: 4px;
            }

            .pref-btn span.name {
                font-size: 10px;
            }

            .pref-btn span.wage {
                font-size: 10px;
            }
        }

        @media (max-width: 480px) {
            #simulation-root {
                padding: 0.5rem;
            }

            #simulation-root .p-10,
            #simulation-root .p-12,
            #simulation-root .p-8 {
                padding: 1rem !important;
            }

            #simulation-root h1.text-4xl,
            #simulation-root h2.text-3xl {
                font-size: 1.5rem !important;
            }

            #simulation-root .text-4xl,
            #simulation-root .text-5xl,
            #simulation-root .text-6xl {
                font-size: 1.85rem !important;
            }

            #simulation-root .input-field {
                font-size: 1.1rem !important;
            }

            .annual-money {
                font-size: 0.88rem;
            }

            #confirmation-summary .confirmation-value {
                font-size: 1.05rem;
            }

            #deebot-rec-section > div:first-child,
            #ufo-rec-section > div:first-child,
            #TakaLabot\ 55-rec-section > div:first-child {
                flex-direction: column;
            }

            #deebot-rec-section img,
            #ufo-rec-section img,
            #TakaLabot\ 55-rec-section img {
                width: 3rem !important;
                height: 3rem !important;
            }

            #robot-recommendation .text-lg {
                font-size: 1rem !important;
            }

            #number-keypad > div {
                padding: 0.875rem !important;
            }

            #simulation-root .keypad-btn {
                min-height: 58px;
                font-size: 1.3rem;
            }
        }

        /* --- Premium Keypad Styles --- */
        #simulation-root .keypad-btn {
            background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
            border: 1px solid #e2e8f0;
            color: #1e293b;
            padding: 1.25rem;
            border-radius: 1.25rem;
            font-size: 1.75rem;
            font-weight: 800;
            transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            -webkit-user-select: none;
            user-select: none;
            touch-action: manipulation;
        }

        #simulation-root .keypad-btn:hover {
            transform: translateY(-3px);
            box-shadow: 0 12px 20px -5px rgba(13, 148, 136, 0.15);
            border-color: #0d9488;
            color: #0d9488;
            background: #ffffff;
        }

        #simulation-root .keypad-btn:active {
            transform: scale(0.92);
            background: #f1f5f9;
        }

        /* 数値確定ボタンなどの特殊ボタン */
        #simulation-root [data-action="keypad-confirm"] {
            background: linear-gradient(135deg, #0d9488 0%, #0f766e 100%) !important;
            color: white !important;
            border: none !important;
        }

        #simulation-root [data-action="keypad-confirm"]:hover {
            box-shadow: 0 10px 25px rgba(13, 148, 136, 0.4) !important;
        }

        #simulation-root [data-action="keypad-clear"] {
            background: linear-gradient(135deg, #ef4444 0%, #b91c1c 100%) !important;
            color: white !important;
            border: none !important;
        }

        /* 日本地図などの追加補正 */
        .pref-btn span.wage {
            color: #0d9488;
            font-weight: bold;
            font-size: 11px;
            font-family: 'Roboto Mono', monospace;
        }

        .japan-map-container {
            border: 1px solid #e2e8f0;
            background: white;
            padding: 1.5rem !important;
            box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.02);
            width: 100%;
            overflow: auto;
            border-radius: 1rem;
        }

        .map-wrapper {
            display: grid;
            grid-template-columns: repeat(17, 1fr);
            grid-template-rows: repeat(14, 1fr);
            gap: 6px;
            width: 100%;
            max-width: 900px;
            aspect-ratio: 1.4 / 1;
            margin: 0 auto;
        }

        .pref-btn {
            position: relative;
            width: 100%;
            height: 100%;
            background-color: white;
            border: 1px solid #e2e8f0 !important;
            border-radius: 6px;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.2s;
            box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
            padding: 4px;
            z-index: 1;
        }

        .pref-btn span.name {
            font-weight: bold;
            color: #334155;
            font-size: 11px;
            margin-bottom: 2px;
            white-space: nowrap;
        }

        .pref-btn:hover {
            transform: scale(1.15) translateY(-5px) !important;
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1) !important;
            z-index: 50 !important;
        }

        /* 地域別カラーの復活 */
        .region-hokkaido {
            border-top: 4px solid #a5b4fc !important;
        }

        .region-tohoku {
            border-top: 4px solid #c4b5fd !important;
        }

        .region-kanto {
            border-top: 4px solid #fca5a5 !important;
        }

        .region-chubu {
            border-top: 4px solid #fde047 !important;
        }

        .region-kansai {
            border-top: 4px solid #86efac !important;
        }

        .region-chugoku {
            border-top: 4px solid #93c5fd !important;
        }

        .region-shikoku {
            border-top: 4px solid #fdba74 !important;
        }

        .region-kyushu {
            border-top: 4px solid #f0abfc !important;
        }

        /* キーパッドモーダルの微調整 */
        #keypad-display {
            background: #f8fafc;
            border-color: #e2e8f0;
            color: #0f172a;
            letter-spacing: 0.05em;
            box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.05);
        }

        #keypad-title {
            color: #64748b;
            text-transform: uppercase;
            letter-spacing: 0.1em;
        }

        /* 印刷・PDF出力用スタイル (横一行・三段活用レイアウト) */
        @media print {
            @page {
                size: A4;
                margin: 5mm;
            }

            * {
                -webkit-print-color-adjust: exact !important;
                print-color-adjust: exact !important;
            }

            html,
            body {
                zoom: 1.0;
                background: white !important;
                background-image: none !important;
                font-size: 10pt;
                color: #111;
                width: 100% !important;
                max-width: 100% !important;
                margin: 0 !important;
                padding: 0 !important;
            }

            /* 全体のコンテナを強制的に白背景・全幅・枠なしに */
            #simulation-root,
            .mx-auto,
            .max-w-2xl,
            .w-full,
            .px-4,
            .py-8 {
                max-width: none !important;
                width: 100% !important;
                padding: 0 !important;
                margin: 0 !important;
                background: white !important;
                background-image: none !important;
                background-color: white !important;
                box-shadow: none !important;
                border: none !important;
                border-radius: 0 !important;
                position: static !important;
                transform: none !important;
            }

            /* 親コンテナのflex解除 */
            body {
                display: block !important;
                height: auto !important;
                min-height: 0 !important;
                overflow: visible !important;
            }

            /* Step 5のラッパー（白いカード部分）も枠解除 */
            #step-5>div,
            .bg-white\/95,
            .backdrop-blur-md,
            .shadow-2xl,
            .rounded-2xl,
            .border-teal-50 {
                box-shadow: none !important;
                border: none !important;
                border-radius: 0 !important;
                padding: 0 !important;
                margin: 0 !important;
                background: white !important;
                backdrop-filter: none !important;
            }

            /* 背景や影を印刷用に調整（グレーの枠は削除） */
            .bg-white {
                box-shadow: none !important;
                border: none !important;
                padding: 0.4rem !important;
                margin-bottom: 0.6rem !important;
            }

            h1.show-on-print {
                font-size: 18pt !important;
                margin-bottom: 0.5rem !important;
                border-bottom: 3px solid #0d9488 !important;
                padding-bottom: 0.2rem !important;
            }

            .show-on-print {
                display: block !important;
            }

            img {
                display: block !important;
                width: 40px !important;
                height: 40px !important;
                object-fit: contain !important;
            }

            .hide-on-print {
                display: none !important;
            }

            /* 通常時は稟議書を非表示（結果のみ印刷） */
            #ringi-document {
                display: none;
            }

            /* ringi-mode のときだけ稟議書を表示 */
            .ringi-mode #ringi-document {
                display: block !important;
                page-break-before: auto !important;
                margin-top: 0 !important;
            }

            /* ringi-mode のときは結果画面（Step 5）を非表示 */
            .ringi-mode #step-5,
            .ringi-mode #simulation-root>div:not(#ringi-document) {
                display: none !important;
            }

            /* 稟議書内のスペース調整 */
            #ringi-document .ringi-header {
                margin-bottom: 8px !important;
                padding-bottom: 5px !important;
            }

            #ringi-document .ringi-section {
                margin-bottom: 6px !important;
            }

            #ringi-document .ringi-section-title {
                padding: 3px 8px !important;
                margin-bottom: 4px !important;
                font-size: 10pt !important;
            }

            #ringi-document .ringi-table th,
            #ringi-document .ringi-table td {
                padding: 4px 8px !important;
            }

            /* --- 月間結果セクション (PDF: 2列配置) --- */
            .order-costs-row-screen {
                display: flex !important;
                flex-wrap: wrap !important;
                justify-content: space-between !important;
                margin-bottom: 0.5rem !important;
            }

            /* 現状とロボットを左右に（枠線付き） */
            .calc-box-print:not(.calc-box-result-print) {
                flex: 0 0 49% !important;
                width: 49% !important;
                min-height: auto !important;
                padding: 0.4rem !important;
                border-radius: 8px !important;
                text-align: left !important;
                margin-bottom: 0 !important;
            }

            /* 削減額を下段全幅に配置 */
            .calc-box-result-print {
                flex: 0 0 100% !important;
                width: 100% !important;
                order: 10 !important;
                margin-top: 0.3rem !important;
                padding: 0.3rem !important;
                border: 2px solid #10b981 !important;
                border-radius: 8px !important;
                min-height: auto !important;
            }

            #monthly-savings {
                font-size: 1.6rem !important;
                color: #059669 !important;
                margin: 0 !important;
            }

            .calc-box-result-print p:first-child {
                font-size: 1rem !important;
                margin-bottom: 0.2rem !important;
            }

            #human-cost-result,
            #robot-cost-result {
                font-size: 1.2rem !important;
            }

            /* Compress breakdown details further */
            details>div {
                margin-top: 2px !important;
                padding: 2px !important;
            }

            details>div>div {
                padding: 2px !important;
                gap: 4px !important;
            }

            .space-y-2> :not([hidden])~ :not([hidden]) {
                margin-top: 2px !important;
            }

            details summary {
                margin-bottom: 2px !important;
            }

            /* --- シミュレーション表とグラフ (PDF: 左右2列) --- */
            .annual-report-print-wrapper {
                display: flex !important;
                justify-content: space-between !important;
                align-items: flex-start !important;
                margin-top: 0.5rem !important;
                gap: 2% !important;
            }

            .annual-table-wrapper {
                flex: 0 0 58% !important;
                width: 58% !important;
                margin-bottom: 0 !important;
            }

            .annual-chart-wrapper {
                flex: 0 0 40% !important;
                width: 40% !important;
                margin-bottom: 0 !important;
            }

            /* 表の調整 */
            table {
                font-size: 8pt !important;
                width: 100% !important;
                table-layout: fixed !important;
            }

            th,
            td {
                padding: 0.2rem !important;
                font-size: 7.5pt !important;
                white-space: nowrap !important;
                word-break: keep-all !important;
                overflow: hidden !important;
                text-overflow: ellipsis !important;
            }

            /* テーブルの列幅を調整 */
            th:nth-child(1),
            td:nth-child(1) {
                width: 15% !important;
            }

            th:nth-child(2),
            td:nth-child(2) {
                width: 30% !important;
                text-align: right !important;
            }

            th:nth-child(3),
            td:nth-child(3) {
                width: 30% !important;
                text-align: right !important;
            }

            th:nth-child(4),
            td:nth-child(4) {
                width: 25% !important;
                text-align: right !important;
            }

            /* グラフ高さ調整 */
            canvas {
                max-height: 150px !important;
                width: 100% !important;
            }

            /* グラフの見出し */
            h3 {
                font-size: 10pt !important;
                margin: 0.3rem 0 0.2rem !important;
                border-left: 4px solid #0d9488;
                padding-left: 8px;
            }

            /* 累計削減額サマリー（結論を強調） */
            #total-savings-summary {
                padding: 0.4rem 0.5rem !important;
                margin-top: 0.3rem !important;
                border-radius: 6px !important;
                background: linear-gradient(135deg, #f0fdfa 0%, #d1fae5 100%) !important;
                border: 2px solid #10b981 !important;
            }

            #total-5year-savings {
                font-size: 1.4rem !important;
                color: #047857 !important;
            }

            /* 非表示項目 */
            #progress,
            .mb-8.bg-white\/20,
            button,
            header,
            footer,
            .details-arrow,
            #restart-btn,
            #ones55-not-needed,
            #cost-comparison-chart-section {
                display: none !important;
            }

            /* 順序 */
            #step-5>div {
                display: flex !important;
                flex-direction: column !important;
            }

            h1.show-on-print {
                order: -2 !important;
            }

            .order-title-on-print {
                order: -2 !important;
            }

            .order-first-on-print {
                order: -1 !important;
            }

            .order-calc-on-print {
                order: 0 !important;
            }
        }

        /* 画面表示用（非印刷時）の調整 */
        @media screen {
            .order-costs-row-screen {
                display: grid;
                grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
                gap: 1rem;
                margin-bottom: 1rem;
            }

            .order-savings-screen {
                width: 100%;
            }

            /* 稟議書は画面では非表示 */
            #ringi-document {
                display: none !important;
            }
        }

        /* ===== 稟議書PDF専用スタイル ===== */
        .ringi-mode #step-5,
        .ringi-mode #number-keypad,
        .ringi-mode #prefecture-modal {
            display: none !important;
        }

        .ringi-mode #ringi-document {
            display: block !important;
        }

        @media print {

            /* 稟議書モードのときのみ稟議書を表示 */
            .ringi-mode #ringi-document {
                display: block !important;
                background: white !important;
                padding: 10mm !important;
                font-family: 'Yu Gothic', 'Hiragino Kaku Gothic Pro', sans-serif !important;
                width: 100% !important;
                max-width: 100% !important;
            }

            /* 通常モード（結果印刷）では稟議書を隠す */
            body:not(.ringi-mode) #ringi-document {
                display: none !important;
            }

            .ringi-mode #step-5 {
                display: none !important;
            }

            /* 稟議書のレイアウト */
            .ringi-header {
                text-align: center;
                border-bottom: 2px double #333;
                padding-bottom: 5px;
                margin-bottom: 10px;
            }

            .ringi-title {
                font-size: 18pt !important;
                font-weight: bold;
                letter-spacing: 0.2em;
            }

            .ringi-date {
                text-align: right;
                font-size: 9pt;
                margin-bottom: 8px;
            }

            .ringi-section {
                margin-bottom: 8px;
            }

            .ringi-section-title {
                font-weight: bold;
                font-size: 10pt;
                background: #f5f5f5;
                padding: 3px 8px;
                border-left: 4px solid #0d9488;
                margin-bottom: 5px;
            }

            .ringi-section-content {
                padding: 3px 8px;
                font-size: 9pt;
                line-height: 1.4;
            }

            .ringi-table {
                width: 100%;
                border-collapse: collapse;
                font-size: 8.5pt;
                margin: 5px 0;
            }

            .ringi-table th,
            .ringi-table td {
                border: 1px solid #333;
                padding: 4px 6px;
                text-align: left;
            }

            .ringi-table th {
                background: #f0f0f0;
                font-weight: bold;
                width: 30%;
            }

            .ringi-table .amount {
                text-align: right;
                font-weight: bold;
            }

            .ringi-highlight {
                background: #e6fffa !important;
            }

            .ringi-approval {
                margin-top: 15px;
                display: flex;
                justify-content: flex-end;
                gap: 10px;
            }

            .ringi-stamp-box {
                width: 60px;
                height: 60px;
                border: 1px solid #333;
                text-align: center;
                font-size: 8pt;
            }

            .ringi-stamp-box .label {
                background: #f0f0f0;
                padding: 2px;
                border-bottom: 1px solid #333;
            }

            .ringi-stamp-box .stamp-area {
                height: 40px;
            }

            .ringi-note {
                font-size: 8pt;
                color: #666;
                margin-top: 10px;
                padding: 5px;
                border: 1px dashed #ccc;
            }
        }
