:root{font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif;color:#0f172a;background-color:#f8fafc}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top right,rgba(14,165,233,.18),transparent 40%),radial-gradient(circle at bottom left,rgba(22,163,74,.15),transparent 45%),#f8fafc}h1,h2,h3,p{margin:0}.dashboard-page{min-height:100vh;padding:24px;color:#0f172a}.dashboard-container{max-width:1280px;margin:0 auto;display:grid;gap:24px}.card{border:1px solid #e2e8f0;border-radius:20px;background:#fff;box-shadow:0 8px 24px #0f172a0f}.hero{padding:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.section-eyebrow{color:#64748b;font-size:.85rem;font-weight:600}.page-title{margin-top:4px;font-size:clamp(1.8rem,4vw,2.4rem);font-weight:800;letter-spacing:-.02em}.page-description{margin-top:10px;max-width:860px;color:#475569;line-height:1.6;font-size:.95rem}.hero-actions{display:flex;flex-wrap:wrap;gap:10px}.btn{border-radius:14px;border:1px solid transparent;padding:10px 14px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;background:#fff}.btn-primary{background:#0f172a;color:#fff}.btn-primary:hover{background:#1e293b}.btn-outline{border-color:#cbd5e1;color:#0f172a}.btn-outline:hover{background:#f1f5f9}.btn-sm{font-size:.82rem;padding:7px 10px;border-radius:12px}.kpi-grid{display:grid;gap:16px;grid-template-columns:repeat(1,minmax(0,1fr))}.kpi-card{padding:20px}.kpi-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.kpi-label{color:#64748b;font-size:.88rem}.kpi-value-row{margin-top:8px;display:flex;align-items:flex-end;gap:8px}.kpi-value{font-size:2rem;font-weight:800;line-height:1}.kpi-delta{font-size:.95rem;font-weight:700;margin-bottom:2px}.kpi-up{color:#059669}.kpi-down{color:#dc2626}.kpi-description{margin-top:8px;color:#64748b;font-size:.9rem}.kpi-icon-wrap{border-radius:14px;padding:10px}.icon-good{background:#ecfdf5}.icon-risk{background:#fef2f2}.kpi-icon{width:24px;height:24px}.kpi-icon.good{color:#059669}.kpi-icon.risk{color:#dc2626}.chart-grid{display:grid;gap:24px;grid-template-columns:repeat(1,minmax(0,1fr))}.chart-card{padding:12px}.card-header{padding:8px 8px 0}.card-header h2{font-size:1.05rem}.card-header p{margin-top:4px;color:#64748b;font-size:.88rem}.chart-area{padding:12px 8px 8px}.chart-area.large{height:320px}.chart-area.medium{height:260px}.domain-grid{display:grid;gap:16px;grid-template-columns:repeat(1,minmax(0,1fr))}.domain-card{padding:20px;transition:transform .2s ease,box-shadow .2s ease}.domain-card:hover{transform:translateY(-2px);box-shadow:0 14px 28px #0f172a14}.domain-head{display:flex;align-items:center;gap:10px}.domain-head h2{font-size:1rem}.domain-icon-wrap{border-radius:12px;background:#f1f5f9;padding:10px}.domain-icon{width:20px;height:20px;color:#334155}.domain-metrics{margin-top:14px;display:grid;gap:8px}.domain-metric-item{border-radius:12px;background:#f8fafc;padding:8px 10px;font-size:.88rem}.alerts-grid{display:grid;gap:24px;grid-template-columns:repeat(1,minmax(0,1fr))}.alerts-card{padding:20px}.alerts-header{display:flex;flex-direction:column;gap:12px}.alerts-header h2{font-size:1.08rem}.alerts-header p{margin-top:4px;color:#64748b;font-size:.9rem}.alerts-controls{display:flex;flex-direction:column;gap:8px}.search-input-wrap{position:relative}.search-icon{position:absolute;left:10px;top:10px;width:16px;height:16px;color:#94a3b8}.search-input{width:100%;border:1px solid #cbd5e1;border-radius:14px;padding:8px 10px 8px 34px;font-size:.9rem}.search-input:focus{outline:none;border-color:#94a3b8;box-shadow:0 0 0 3px #94a3b833}.area-buttons{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.alerts-list{margin-top:14px;display:grid;gap:10px}.alert-item{border:1px solid #e2e8f0;border-radius:16px;padding:14px}.alert-top{display:flex;justify-content:space-between;gap:10px}.alert-badges{display:flex;flex-wrap:wrap;gap:8px}.alert-item h3{margin-top:10px;font-size:1rem}.alert-target{margin-top:5px;font-size:.9rem;color:#64748b}.alert-impact{margin-top:3px;font-size:.9rem;color:#475569}.alert-owner{color:#64748b;font-size:.86rem;white-space:nowrap}.badge{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:600}.badge-high{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.badge-medium{background:#fef3c7;color:#92400e;border-color:#fde68a}.badge-low,.badge-default{background:#f1f5f9;color:#334155;border-color:#e2e8f0}.empty-state{border:1px dashed #cbd5e1;border-radius:12px;padding:12px;color:#64748b;font-size:.9rem}.side-cards{display:grid;gap:24px}.side-card{padding:12px}.sustainability-list{padding:12px 8px 8px;display:grid;gap:12px}.sustainability-row{display:flex;justify-content:space-between;margin-bottom:4px;font-size:.88rem}.sustainability-name{font-weight:600}.sustainability-value{color:#64748b}.progress-track{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden}.progress-value{height:100%;border-radius:inherit;background:#0f172a}.insight-card{padding:20px}.insight-grid{display:grid;gap:14px;grid-template-columns:repeat(1,minmax(0,1fr))}.insight-item{border-radius:14px;padding:14px;background:#f8fafc}.insight-title{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700}.insight-icon{width:16px;height:16px}.insight-item p{margin-top:8px;font-size:.9rem;color:#475569}@media(min-width:768px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{padding:24px 28px}.insight-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.chart-grid{grid-template-columns:2fr 1fr}.domain-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.alerts-grid{grid-template-columns:3fr 2fr}.alerts-header{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:16px}.alerts-controls{width:min(520px,100%)}.alert-top{flex-direction:row}}@media(min-width:1280px){.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:767px){.dashboard-page{padding:16px}.hero{flex-direction:column;align-items:stretch}.alert-top{flex-direction:column}.alert-owner{white-space:normal}}
