*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #f4f9f4;--bg-secondary: #ffffff;--border-color: #d2e3d8;--color-main: #2d6a4f;--color-main-light: #74c69d;--color-main-dark: #1b4332;--color-main-glow: rgba(45, 106, 79, .08);--color-blue: #2a6f97;--color-orange: #d97706;--color-orange-glow: rgba(217, 119, 6, .08);--color-red: #b91c1c;--color-red-glow: rgba(185, 28, 28, .08);--color-gray-dark: #6b7280;--text-primary: #1b4332;--text-body: #2d3748;--text-secondary: #52796f;--text-muted: #7f9f96;--font-sans: "Outfit", "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--transition-fast: .2s ease;--transition-normal: .3s cubic-bezier(.4, 0, .2, 1);--shadow-light: 0 4px 12px 0 rgba(0, 0, 0, .05);--shadow-normal: 0 8px 24px 0 rgba(0, 0, 0, .08)}body{background-color:var(--bg-primary);color:var(--text-body);font-family:var(--font-sans);min-height:100vh;overflow-x:hidden;position:relative;line-height:1.6}.app-container{display:flex;min-height:100vh}@media (max-width: 1024px){.app-container{flex-direction:column}}.sidebar{width:280px;background:var(--bg-secondary);border-right:1px solid var(--border-color);padding:2rem 1.5rem;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:10}@media (max-width: 1024px){.sidebar{width:100%;height:auto;position:relative;padding:1.5rem;border-right:none;border-bottom:1px solid var(--border-color)}}.brand-section{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem}.brand-logo{background:linear-gradient(135deg,var(--color-main) 0%,var(--color-main-light) 100%);width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;box-shadow:0 4px 10px #2d6a4f33}.brand-name-container h1{font-size:1.15rem;font-weight:800;color:var(--color-main-dark);letter-spacing:-.5px}.brand-name-container p{font-size:.7rem;color:var(--text-secondary);font-weight:500}.nav-menu{display:flex;flex-direction:column;gap:.25rem;list-style:none;overflow-y:auto;padding-right:.25rem}.nav-menu::-webkit-scrollbar{width:4px}.nav-menu::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}@media (max-width: 1024px){.nav-menu{flex-direction:row;flex-wrap:wrap;justify-content:center;overflow-y:visible}}.nav-item{width:100%}@media (max-width: 1024px){.nav-item{width:auto}}.nav-button{width:100%;display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;border:1px solid transparent;background:transparent;color:var(--text-secondary);border-radius:8px;font-family:var(--font-sans);font-size:.85rem;font-weight:600;cursor:pointer;transition:var(--transition-fast);text-align:left}.nav-button:hover{background:var(--color-main-glow);color:var(--color-main)}.nav-button.active{background:var(--color-main);color:#fff;font-weight:600;box-shadow:0 4px 10px #2d6a4f26}.sidebar-footer{margin-top:auto;font-size:.7rem;color:var(--text-muted);text-align:center;border-top:1px solid var(--border-color);padding-top:1.25rem}@media (max-width: 1024px){.sidebar-footer{display:none}}.main-content{flex:1;padding:2.5rem;overflow-y:auto;max-width:1600px;margin:0;width:100%}@media (max-width: 768px){.main-content{padding:1.25rem}}.page-header{margin-bottom:2rem}.page-title-badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--color-main-glow);color:var(--color-main);padding:.35rem .85rem;border-radius:9999px;font-size:.75rem;font-weight:700;border:1px solid var(--border-color);margin-bottom:.75rem}.page-header h2{font-size:1.75rem;font-weight:800;color:var(--color-main-dark);letter-spacing:-.5px;margin-bottom:.5rem}.page-header p{color:var(--text-secondary);font-size:.95rem}.grid-6{display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;margin-bottom:1.5rem}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:1.5rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-bottom:1.5rem}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-bottom:1.5rem}@media (max-width: 1280px){.grid-6{grid-template-columns:repeat(3,1fr)}.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.grid-6{grid-template-columns:repeat(2,1fr)}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}@media (max-width: 480px){.grid-6{grid-template-columns:1fr}}.card-item{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem;box-shadow:var(--shadow-light);transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast);position:relative;overflow:hidden}.card-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-normal);border-color:var(--color-main-light)}.card-item:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:transparent;transition:background var(--transition-fast)}.card-item.accent-main:before{background:var(--color-main)}.card-item.accent-accent:before{background:var(--color-main-light)}.card-item.accent-blue:before{background:var(--color-blue)}.card-item.accent-orange:before{background:var(--color-orange)}.card-item.accent-red:before{background:var(--color-red)}.card-header-with-icon{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.card-title-muted{font-size:.75rem;color:var(--text-secondary);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.card-icon-container{background:var(--color-main-glow);width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--color-main)}.card-item.accent-orange .card-icon-container{color:var(--color-orange);background:var(--color-orange-glow)}.card-item.accent-red .card-icon-container{color:var(--color-red);background:var(--color-red-glow)}.card-value{font-size:1.6rem;font-weight:800;color:var(--color-main-dark);letter-spacing:-.5px;margin-bottom:.25rem}.card-desc{font-size:.75rem;color:var(--text-secondary);font-weight:500;line-height:1.4}.card-label{display:inline-flex;align-items:center;gap:.35rem;background:var(--color-main-glow);color:var(--color-main);padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:700;margin-bottom:.75rem;border:1px solid var(--border-color)}.accent-orange .card-label{color:var(--color-orange);background:var(--color-orange-glow);border-color:#fbd38d}.accent-red .card-label{color:var(--color-red);background:var(--color-red-glow);border-color:#feb2b2}.card-title-lg{font-size:1.1rem;font-weight:700;color:var(--color-main-dark);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.text-content-card{color:var(--text-body);font-size:.85rem;line-height:1.6}.highlight-box{background:var(--color-main-glow);border-left:4px solid var(--color-main);border-radius:0 8px 8px 0;padding:1rem;margin-top:.75rem;font-size:.85rem;line-height:1.5;color:var(--color-main-dark)}.highlight-box strong{color:var(--color-main-dark)}.highlight-box.alert-orange{background:var(--color-orange-glow);border-left-color:var(--color-orange);color:var(--color-orange)}.highlight-box.alert-orange strong{color:var(--color-orange)}.highlight-box.alert-red{background:var(--color-red-glow);border-left-color:var(--color-red);color:var(--color-red)}.highlight-box.alert-red strong{color:var(--color-red)}.card-item.grayed-out{background:#f7fafc;border-color:#e2e8f0;opacity:.75}.card-item.grayed-out h3,.card-item.grayed-out div{color:var(--color-gray-dark)}.green-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.green-list li{position:relative;padding-left:1.5rem;font-size:.85rem;color:var(--text-body)}.green-list li:before{content:"✓";position:absolute;left:0;top:0;color:var(--color-main);font-weight:700}.red-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.red-list li{position:relative;padding-left:1.5rem;font-size:.85rem;color:var(--text-body)}.red-list li:before{content:"✗";position:absolute;left:0;top:0;color:var(--color-red);font-weight:700}.chart-container-title{font-size:.95rem;font-weight:700;color:var(--color-main-dark);margin-bottom:.75rem;display:flex;align-items:center;justify-content:space-between}.chart-subtitle-muted{font-size:.75rem;color:var(--text-secondary);font-weight:500}.chart-wrapper{width:100%;height:280px;margin-top:.5rem}.table-wrapper{overflow-x:auto;width:100%;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-secondary)}.premium-table{width:100%;border-collapse:collapse;text-align:left;font-size:.85rem}.premium-table th{padding:.75rem .85rem;background-color:var(--color-main-glow);color:var(--color-main-dark);font-weight:700;border-bottom:1.5px solid var(--border-color);font-size:.75rem;letter-spacing:.5px}.premium-table td{padding:.75rem .85rem;border-bottom:1px solid var(--border-color);color:var(--text-body)}.premium-table tr{transition:background var(--transition-fast)}.premium-table tr:hover{background:var(--color-main-glow)}.badge{padding:.2rem .4rem;border-radius:4px;font-size:.7rem;font-weight:700}.badge-green{background:var(--color-main-glow);color:var(--color-main);border:1px solid var(--border-color)}.badge-orange{background:var(--color-orange-glow);color:var(--color-orange);border:1px solid #fee2e2}.metric-highlight{color:var(--color-main);font-weight:700}.accordion{display:flex;flex-direction:column;gap:.5rem}.accordion-item{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--bg-secondary);transition:border-color var(--transition-fast)}.accordion-item:hover{border-color:var(--color-main-light)}.accordion-header{width:100%;padding:.75rem 1rem;background:var(--bg-secondary);border:none;color:var(--color-main-dark);display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-family:var(--font-sans);font-size:.85rem;font-weight:700;text-align:left;transition:background var(--transition-fast)}.accordion-header:hover{background:var(--color-main-glow)}.accordion-content{padding:1rem;background:var(--bg-primary);border-top:1px solid var(--border-color);font-size:.8rem;line-height:1.5;color:var(--text-body)}.accordion-arrow{transition:transform var(--transition-normal);color:var(--text-secondary)}.accordion-item.open .accordion-arrow{transform:rotate(180deg);color:var(--color-main)}.accordion-item.open{border-color:var(--color-main)}.custom-tooltip{background:#fffffffa;border:1px solid var(--border-color);border-radius:8px;padding:.5rem .75rem;box-shadow:var(--shadow-normal);font-size:.75rem;line-height:1.4;color:var(--text-body)}.custom-tooltip-title{font-weight:700;margin-bottom:.25rem;border-bottom:1px solid var(--border-color);padding-bottom:.25rem;color:var(--color-main-dark)}.custom-tooltip-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.custom-tooltip-label{font-weight:600}.custom-tooltip-val{font-weight:700}.timeline{position:relative;padding-left:1.5rem;margin-left:.5rem;border-left:2px solid var(--color-main-light);display:flex;flex-direction:column;gap:1.5rem}.timeline-item{position:relative}.timeline-dot{position:absolute;left:-2rem;top:.25rem;width:12px;height:12px;border-radius:50%;background:var(--color-main);border:2px solid var(--bg-secondary);box-shadow:0 0 0 3px var(--color-main-glow)}.timeline-phase{font-size:.75rem;font-weight:700;color:var(--color-main);background:var(--color-main-glow);padding:.15rem .45rem;border-radius:4px;display:inline-block;margin-bottom:.25rem;border:1px solid var(--border-color)}.timeline-title{font-size:.95rem;font-weight:700;color:var(--color-main-dark);margin-bottom:.5rem}.progress-bar-container{width:100%;height:8px;background-color:var(--border-color);border-radius:4px;overflow:hidden;margin-top:.5rem}.progress-bar{height:100%;background:linear-gradient(90deg,var(--color-main-light) 0%,var(--color-main) 100%);border-radius:4px}.diagram-box{background:var(--color-main-glow);border:1px dashed var(--color-main);border-radius:8px;padding:1rem;text-align:center;font-weight:700;color:var(--color-main-dark);font-size:.85rem}.brand-hero{background:var(--bg-secondary);border:1px solid var(--color-main);border-radius:16px;padding:2rem;text-align:center;box-shadow:var(--shadow-normal);margin-bottom:1.5rem}.brand-hero h3{font-size:1.3rem;font-weight:800;color:var(--color-main-dark);margin-bottom:.5rem}.brand-hero p{font-size:1rem;font-weight:600;color:var(--color-main)}
